package net.danieldietrich.gwt.dsl.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.xtext.parsetree.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import net.danieldietrich.gwt.dsl.services.DomainModelGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalDomainModelParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'public'", "'private'", "'protected'", "'import'", "';'", "'package'", "'{'", "'}'", "'datatype'", "'entity'", "'extends'", "'ref'", "'opposite'", "'('", "')'", "','", "'.*'", "'.'", "'*'"
    };
    public static final int RULE_ID=4;
    public static final int RULE_STRING=6;
    public static final int RULE_ANY_OTHER=10;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;

        public InternalDomainModelParser(TokenStream input) {
            super(input);
        }
        

    public String[] getTokenNames() { return tokenNames; }
    public String getGrammarFileName() { return "../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g"; }


     
     	private DomainModelGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(DomainModelGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start entryRuleDomainModel
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:61:1: entryRuleDomainModel : ruleDomainModel EOF ;
    public final void entryRuleDomainModel() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:62:1: ( ruleDomainModel EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:63:1: ruleDomainModel EOF
            {
             before(grammarAccess.getDomainModelRule()); 
            pushFollow(FOLLOW_ruleDomainModel_in_entryRuleDomainModel61);
            ruleDomainModel();
            _fsp--;

             after(grammarAccess.getDomainModelRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDomainModel68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleDomainModel


    // $ANTLR start ruleDomainModel
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:70:1: ruleDomainModel : ( ( rule__DomainModel__ElementsAssignment )* ) ;
    public final void ruleDomainModel() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:74:2: ( ( ( rule__DomainModel__ElementsAssignment )* ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:75:1: ( ( rule__DomainModel__ElementsAssignment )* )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:75:1: ( ( rule__DomainModel__ElementsAssignment )* )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:76:1: ( rule__DomainModel__ElementsAssignment )*
            {
             before(grammarAccess.getDomainModelAccess().getElementsAssignment()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:77:1: ( rule__DomainModel__ElementsAssignment )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==14||LA1_0==16||(LA1_0>=19 && LA1_0<=20)) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:77:2: rule__DomainModel__ElementsAssignment
            	    {
            	    pushFollow(FOLLOW_rule__DomainModel__ElementsAssignment_in_ruleDomainModel94);
            	    rule__DomainModel__ElementsAssignment();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

             after(grammarAccess.getDomainModelAccess().getElementsAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleDomainModel


    // $ANTLR start entryRuleAbstractElement
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:89:1: entryRuleAbstractElement : ruleAbstractElement EOF ;
    public final void entryRuleAbstractElement() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:90:1: ( ruleAbstractElement EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:91:1: ruleAbstractElement EOF
            {
             before(grammarAccess.getAbstractElementRule()); 
            pushFollow(FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement122);
            ruleAbstractElement();
            _fsp--;

             after(grammarAccess.getAbstractElementRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractElement129); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleAbstractElement


    // $ANTLR start ruleAbstractElement
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:98:1: ruleAbstractElement : ( ( rule__AbstractElement__Alternatives ) ) ;
    public final void ruleAbstractElement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:102:2: ( ( ( rule__AbstractElement__Alternatives ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:103:1: ( ( rule__AbstractElement__Alternatives ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:103:1: ( ( rule__AbstractElement__Alternatives ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:104:1: ( rule__AbstractElement__Alternatives )
            {
             before(grammarAccess.getAbstractElementAccess().getAlternatives()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:105:1: ( rule__AbstractElement__Alternatives )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:105:2: rule__AbstractElement__Alternatives
            {
            pushFollow(FOLLOW_rule__AbstractElement__Alternatives_in_ruleAbstractElement155);
            rule__AbstractElement__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getAbstractElementAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleAbstractElement


    // $ANTLR start entryRuleImport
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:117:1: entryRuleImport : ruleImport EOF ;
    public final void entryRuleImport() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:118:1: ( ruleImport EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:119:1: ruleImport EOF
            {
             before(grammarAccess.getImportRule()); 
            pushFollow(FOLLOW_ruleImport_in_entryRuleImport182);
            ruleImport();
            _fsp--;

             after(grammarAccess.getImportRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImport189); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleImport


    // $ANTLR start ruleImport
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:126:1: ruleImport : ( ( rule__Import__Group__0 ) ) ;
    public final void ruleImport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:130:2: ( ( ( rule__Import__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:131:1: ( ( rule__Import__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:131:1: ( ( rule__Import__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:132:1: ( rule__Import__Group__0 )
            {
             before(grammarAccess.getImportAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:133:1: ( rule__Import__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:133:2: rule__Import__Group__0
            {
            pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport215);
            rule__Import__Group__0();
            _fsp--;


            }

             after(grammarAccess.getImportAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleImport


    // $ANTLR start entryRulePackageDeclaration
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:145:1: entryRulePackageDeclaration : rulePackageDeclaration EOF ;
    public final void entryRulePackageDeclaration() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:146:1: ( rulePackageDeclaration EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:147:1: rulePackageDeclaration EOF
            {
             before(grammarAccess.getPackageDeclarationRule()); 
            pushFollow(FOLLOW_rulePackageDeclaration_in_entryRulePackageDeclaration242);
            rulePackageDeclaration();
            _fsp--;

             after(grammarAccess.getPackageDeclarationRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePackageDeclaration249); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulePackageDeclaration


    // $ANTLR start rulePackageDeclaration
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:154:1: rulePackageDeclaration : ( ( rule__PackageDeclaration__Group__0 ) ) ;
    public final void rulePackageDeclaration() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:158:2: ( ( ( rule__PackageDeclaration__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:159:1: ( ( rule__PackageDeclaration__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:159:1: ( ( rule__PackageDeclaration__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:160:1: ( rule__PackageDeclaration__Group__0 )
            {
             before(grammarAccess.getPackageDeclarationAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:161:1: ( rule__PackageDeclaration__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:161:2: rule__PackageDeclaration__Group__0
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__0_in_rulePackageDeclaration275);
            rule__PackageDeclaration__Group__0();
            _fsp--;


            }

             after(grammarAccess.getPackageDeclarationAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulePackageDeclaration


    // $ANTLR start entryRuleType
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:173:1: entryRuleType : ruleType EOF ;
    public final void entryRuleType() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:174:1: ( ruleType EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:175:1: ruleType EOF
            {
             before(grammarAccess.getTypeRule()); 
            pushFollow(FOLLOW_ruleType_in_entryRuleType302);
            ruleType();
            _fsp--;

             after(grammarAccess.getTypeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleType309); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleType


    // $ANTLR start ruleType
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:182:1: ruleType : ( ( rule__Type__Alternatives ) ) ;
    public final void ruleType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:186:2: ( ( ( rule__Type__Alternatives ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:187:1: ( ( rule__Type__Alternatives ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:187:1: ( ( rule__Type__Alternatives ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:188:1: ( rule__Type__Alternatives )
            {
             before(grammarAccess.getTypeAccess().getAlternatives()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:189:1: ( rule__Type__Alternatives )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:189:2: rule__Type__Alternatives
            {
            pushFollow(FOLLOW_rule__Type__Alternatives_in_ruleType335);
            rule__Type__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getTypeAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleType


    // $ANTLR start entryRuleDataType
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:201:1: entryRuleDataType : ruleDataType EOF ;
    public final void entryRuleDataType() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:202:1: ( ruleDataType EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:203:1: ruleDataType EOF
            {
             before(grammarAccess.getDataTypeRule()); 
            pushFollow(FOLLOW_ruleDataType_in_entryRuleDataType362);
            ruleDataType();
            _fsp--;

             after(grammarAccess.getDataTypeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDataType369); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleDataType


    // $ANTLR start ruleDataType
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:210:1: ruleDataType : ( ( rule__DataType__Group__0 ) ) ;
    public final void ruleDataType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:214:2: ( ( ( rule__DataType__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:215:1: ( ( rule__DataType__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:215:1: ( ( rule__DataType__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:216:1: ( rule__DataType__Group__0 )
            {
             before(grammarAccess.getDataTypeAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:217:1: ( rule__DataType__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:217:2: rule__DataType__Group__0
            {
            pushFollow(FOLLOW_rule__DataType__Group__0_in_ruleDataType395);
            rule__DataType__Group__0();
            _fsp--;


            }

             after(grammarAccess.getDataTypeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleDataType


    // $ANTLR start entryRuleEntity
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:229:1: entryRuleEntity : ruleEntity EOF ;
    public final void entryRuleEntity() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:230:1: ( ruleEntity EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:231:1: ruleEntity EOF
            {
             before(grammarAccess.getEntityRule()); 
            pushFollow(FOLLOW_ruleEntity_in_entryRuleEntity422);
            ruleEntity();
            _fsp--;

             after(grammarAccess.getEntityRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEntity429); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleEntity


    // $ANTLR start ruleEntity
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:238:1: ruleEntity : ( ( rule__Entity__Group__0 ) ) ;
    public final void ruleEntity() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:242:2: ( ( ( rule__Entity__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:243:1: ( ( rule__Entity__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:243:1: ( ( rule__Entity__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:244:1: ( rule__Entity__Group__0 )
            {
             before(grammarAccess.getEntityAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:245:1: ( rule__Entity__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:245:2: rule__Entity__Group__0
            {
            pushFollow(FOLLOW_rule__Entity__Group__0_in_ruleEntity455);
            rule__Entity__Group__0();
            _fsp--;


            }

             after(grammarAccess.getEntityAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleEntity


    // $ANTLR start entryRuleFeature
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:257:1: entryRuleFeature : ruleFeature EOF ;
    public final void entryRuleFeature() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:258:1: ( ruleFeature EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:259:1: ruleFeature EOF
            {
             before(grammarAccess.getFeatureRule()); 
            pushFollow(FOLLOW_ruleFeature_in_entryRuleFeature482);
            ruleFeature();
            _fsp--;

             after(grammarAccess.getFeatureRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFeature489); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleFeature


    // $ANTLR start ruleFeature
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:266:1: ruleFeature : ( ( rule__Feature__Alternatives ) ) ;
    public final void ruleFeature() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:270:2: ( ( ( rule__Feature__Alternatives ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:271:1: ( ( rule__Feature__Alternatives ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:271:1: ( ( rule__Feature__Alternatives ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:272:1: ( rule__Feature__Alternatives )
            {
             before(grammarAccess.getFeatureAccess().getAlternatives()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:273:1: ( rule__Feature__Alternatives )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:273:2: rule__Feature__Alternatives
            {
            pushFollow(FOLLOW_rule__Feature__Alternatives_in_ruleFeature515);
            rule__Feature__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getFeatureAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleFeature


    // $ANTLR start entryRuleStructuralFeature
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:285:1: entryRuleStructuralFeature : ruleStructuralFeature EOF ;
    public final void entryRuleStructuralFeature() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:286:1: ( ruleStructuralFeature EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:287:1: ruleStructuralFeature EOF
            {
             before(grammarAccess.getStructuralFeatureRule()); 
            pushFollow(FOLLOW_ruleStructuralFeature_in_entryRuleStructuralFeature542);
            ruleStructuralFeature();
            _fsp--;

             after(grammarAccess.getStructuralFeatureRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleStructuralFeature549); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleStructuralFeature


    // $ANTLR start ruleStructuralFeature
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:294:1: ruleStructuralFeature : ( ( rule__StructuralFeature__Alternatives ) ) ;
    public final void ruleStructuralFeature() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:298:2: ( ( ( rule__StructuralFeature__Alternatives ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:299:1: ( ( rule__StructuralFeature__Alternatives ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:299:1: ( ( rule__StructuralFeature__Alternatives ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:300:1: ( rule__StructuralFeature__Alternatives )
            {
             before(grammarAccess.getStructuralFeatureAccess().getAlternatives()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:301:1: ( rule__StructuralFeature__Alternatives )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:301:2: rule__StructuralFeature__Alternatives
            {
            pushFollow(FOLLOW_rule__StructuralFeature__Alternatives_in_ruleStructuralFeature575);
            rule__StructuralFeature__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getStructuralFeatureAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleStructuralFeature


    // $ANTLR start entryRuleAttribute
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:313:1: entryRuleAttribute : ruleAttribute EOF ;
    public final void entryRuleAttribute() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:314:1: ( ruleAttribute EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:315:1: ruleAttribute EOF
            {
             before(grammarAccess.getAttributeRule()); 
            pushFollow(FOLLOW_ruleAttribute_in_entryRuleAttribute602);
            ruleAttribute();
            _fsp--;

             after(grammarAccess.getAttributeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAttribute609); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleAttribute


    // $ANTLR start ruleAttribute
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:322:1: ruleAttribute : ( ( rule__Attribute__Group__0 ) ) ;
    public final void ruleAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:326:2: ( ( ( rule__Attribute__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:327:1: ( ( rule__Attribute__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:327:1: ( ( rule__Attribute__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:328:1: ( rule__Attribute__Group__0 )
            {
             before(grammarAccess.getAttributeAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:329:1: ( rule__Attribute__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:329:2: rule__Attribute__Group__0
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0_in_ruleAttribute635);
            rule__Attribute__Group__0();
            _fsp--;


            }

             after(grammarAccess.getAttributeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleAttribute


    // $ANTLR start entryRuleReference
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:341:1: entryRuleReference : ruleReference EOF ;
    public final void entryRuleReference() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:342:1: ( ruleReference EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:343:1: ruleReference EOF
            {
             before(grammarAccess.getReferenceRule()); 
            pushFollow(FOLLOW_ruleReference_in_entryRuleReference662);
            ruleReference();
            _fsp--;

             after(grammarAccess.getReferenceRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleReference669); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleReference


    // $ANTLR start ruleReference
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:350:1: ruleReference : ( ( rule__Reference__Group__0 ) ) ;
    public final void ruleReference() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:354:2: ( ( ( rule__Reference__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:355:1: ( ( rule__Reference__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:355:1: ( ( rule__Reference__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:356:1: ( rule__Reference__Group__0 )
            {
             before(grammarAccess.getReferenceAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:357:1: ( rule__Reference__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:357:2: rule__Reference__Group__0
            {
            pushFollow(FOLLOW_rule__Reference__Group__0_in_ruleReference695);
            rule__Reference__Group__0();
            _fsp--;


            }

             after(grammarAccess.getReferenceAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleReference


    // $ANTLR start entryRuleOperation
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:369:1: entryRuleOperation : ruleOperation EOF ;
    public final void entryRuleOperation() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:370:1: ( ruleOperation EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:371:1: ruleOperation EOF
            {
             before(grammarAccess.getOperationRule()); 
            pushFollow(FOLLOW_ruleOperation_in_entryRuleOperation722);
            ruleOperation();
            _fsp--;

             after(grammarAccess.getOperationRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleOperation729); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleOperation


    // $ANTLR start ruleOperation
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:378:1: ruleOperation : ( ( rule__Operation__Group__0 ) ) ;
    public final void ruleOperation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:382:2: ( ( ( rule__Operation__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:383:1: ( ( rule__Operation__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:383:1: ( ( rule__Operation__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:384:1: ( rule__Operation__Group__0 )
            {
             before(grammarAccess.getOperationAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:385:1: ( rule__Operation__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:385:2: rule__Operation__Group__0
            {
            pushFollow(FOLLOW_rule__Operation__Group__0_in_ruleOperation755);
            rule__Operation__Group__0();
            _fsp--;


            }

             after(grammarAccess.getOperationAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleOperation


    // $ANTLR start entryRuleParameter
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:397:1: entryRuleParameter : ruleParameter EOF ;
    public final void entryRuleParameter() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:398:1: ( ruleParameter EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:399:1: ruleParameter EOF
            {
             before(grammarAccess.getParameterRule()); 
            pushFollow(FOLLOW_ruleParameter_in_entryRuleParameter782);
            ruleParameter();
            _fsp--;

             after(grammarAccess.getParameterRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleParameter789); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleParameter


    // $ANTLR start ruleParameter
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:406:1: ruleParameter : ( ( rule__Parameter__Group__0 ) ) ;
    public final void ruleParameter() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:410:2: ( ( ( rule__Parameter__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:411:1: ( ( rule__Parameter__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:411:1: ( ( rule__Parameter__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:412:1: ( rule__Parameter__Group__0 )
            {
             before(grammarAccess.getParameterAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:413:1: ( rule__Parameter__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:413:2: rule__Parameter__Group__0
            {
            pushFollow(FOLLOW_rule__Parameter__Group__0_in_ruleParameter815);
            rule__Parameter__Group__0();
            _fsp--;


            }

             after(grammarAccess.getParameterAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleParameter


    // $ANTLR start entryRuleTypeRef
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:425:1: entryRuleTypeRef : ruleTypeRef EOF ;
    public final void entryRuleTypeRef() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:426:1: ( ruleTypeRef EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:427:1: ruleTypeRef EOF
            {
             before(grammarAccess.getTypeRefRule()); 
            pushFollow(FOLLOW_ruleTypeRef_in_entryRuleTypeRef842);
            ruleTypeRef();
            _fsp--;

             after(grammarAccess.getTypeRefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTypeRef849); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleTypeRef


    // $ANTLR start ruleTypeRef
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:434:1: ruleTypeRef : ( ( rule__TypeRef__Group__0 ) ) ;
    public final void ruleTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:438:2: ( ( ( rule__TypeRef__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:439:1: ( ( rule__TypeRef__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:439:1: ( ( rule__TypeRef__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:440:1: ( rule__TypeRef__Group__0 )
            {
             before(grammarAccess.getTypeRefAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:441:1: ( rule__TypeRef__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:441:2: rule__TypeRef__Group__0
            {
            pushFollow(FOLLOW_rule__TypeRef__Group__0_in_ruleTypeRef875);
            rule__TypeRef__Group__0();
            _fsp--;


            }

             after(grammarAccess.getTypeRefAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleTypeRef


    // $ANTLR start entryRuleQualifiedNameWithWildCard
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:453:1: entryRuleQualifiedNameWithWildCard : ruleQualifiedNameWithWildCard EOF ;
    public final void entryRuleQualifiedNameWithWildCard() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:454:1: ( ruleQualifiedNameWithWildCard EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:455:1: ruleQualifiedNameWithWildCard EOF
            {
             before(grammarAccess.getQualifiedNameWithWildCardRule()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard902);
            ruleQualifiedNameWithWildCard();
            _fsp--;

             after(grammarAccess.getQualifiedNameWithWildCardRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard909); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleQualifiedNameWithWildCard


    // $ANTLR start ruleQualifiedNameWithWildCard
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:462:1: ruleQualifiedNameWithWildCard : ( ( rule__QualifiedNameWithWildCard__Group__0 ) ) ;
    public final void ruleQualifiedNameWithWildCard() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:466:2: ( ( ( rule__QualifiedNameWithWildCard__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:467:1: ( ( rule__QualifiedNameWithWildCard__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:467:1: ( ( rule__QualifiedNameWithWildCard__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:468:1: ( rule__QualifiedNameWithWildCard__Group__0 )
            {
             before(grammarAccess.getQualifiedNameWithWildCardAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:469:1: ( rule__QualifiedNameWithWildCard__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:469:2: rule__QualifiedNameWithWildCard__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__0_in_ruleQualifiedNameWithWildCard935);
            rule__QualifiedNameWithWildCard__Group__0();
            _fsp--;


            }

             after(grammarAccess.getQualifiedNameWithWildCardAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleQualifiedNameWithWildCard


    // $ANTLR start entryRuleQualifiedName
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:481:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
    public final void entryRuleQualifiedName() throws RecognitionException {
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:482:1: ( ruleQualifiedName EOF )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:483:1: ruleQualifiedName EOF
            {
             before(grammarAccess.getQualifiedNameRule()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName962);
            ruleQualifiedName();
            _fsp--;

             after(grammarAccess.getQualifiedNameRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName969); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleQualifiedName


    // $ANTLR start ruleQualifiedName
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:490:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
    public final void ruleQualifiedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:494:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:495:1: ( ( rule__QualifiedName__Group__0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:495:1: ( ( rule__QualifiedName__Group__0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:496:1: ( rule__QualifiedName__Group__0 )
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:497:1: ( rule__QualifiedName__Group__0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:497:2: rule__QualifiedName__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName995);
            rule__QualifiedName__Group__0();
            _fsp--;


            }

             after(grammarAccess.getQualifiedNameAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleQualifiedName


    // $ANTLR start ruleVisibility
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:510:1: ruleVisibility : ( ( rule__Visibility__Alternatives ) ) ;
    public final void ruleVisibility() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:514:1: ( ( ( rule__Visibility__Alternatives ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:515:1: ( ( rule__Visibility__Alternatives ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:515:1: ( ( rule__Visibility__Alternatives ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:516:1: ( rule__Visibility__Alternatives )
            {
             before(grammarAccess.getVisibilityAccess().getAlternatives()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:517:1: ( rule__Visibility__Alternatives )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:517:2: rule__Visibility__Alternatives
            {
            pushFollow(FOLLOW_rule__Visibility__Alternatives_in_ruleVisibility1032);
            rule__Visibility__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getVisibilityAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleVisibility


    // $ANTLR start rule__AbstractElement__Alternatives
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:528:1: rule__AbstractElement__Alternatives : ( ( rulePackageDeclaration ) | ( ruleType ) | ( ruleImport ) );
    public final void rule__AbstractElement__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:532:1: ( ( rulePackageDeclaration ) | ( ruleType ) | ( ruleImport ) )
            int alt2=3;
            switch ( input.LA(1) ) {
            case 16:
                {
                alt2=1;
                }
                break;
            case 19:
            case 20:
                {
                alt2=2;
                }
                break;
            case 14:
                {
                alt2=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("528:1: rule__AbstractElement__Alternatives : ( ( rulePackageDeclaration ) | ( ruleType ) | ( ruleImport ) );", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:533:1: ( rulePackageDeclaration )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:533:1: ( rulePackageDeclaration )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:534:1: rulePackageDeclaration
                    {
                     before(grammarAccess.getAbstractElementAccess().getPackageDeclarationParserRuleCall_0()); 
                    pushFollow(FOLLOW_rulePackageDeclaration_in_rule__AbstractElement__Alternatives1067);
                    rulePackageDeclaration();
                    _fsp--;

                     after(grammarAccess.getAbstractElementAccess().getPackageDeclarationParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:539:6: ( ruleType )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:539:6: ( ruleType )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:540:1: ruleType
                    {
                     before(grammarAccess.getAbstractElementAccess().getTypeParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleType_in_rule__AbstractElement__Alternatives1084);
                    ruleType();
                    _fsp--;

                     after(grammarAccess.getAbstractElementAccess().getTypeParserRuleCall_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:545:6: ( ruleImport )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:545:6: ( ruleImport )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:546:1: ruleImport
                    {
                     before(grammarAccess.getAbstractElementAccess().getImportParserRuleCall_2()); 
                    pushFollow(FOLLOW_ruleImport_in_rule__AbstractElement__Alternatives1101);
                    ruleImport();
                    _fsp--;

                     after(grammarAccess.getAbstractElementAccess().getImportParserRuleCall_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractElement__Alternatives


    // $ANTLR start rule__Type__Alternatives
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:556:1: rule__Type__Alternatives : ( ( ruleEntity ) | ( ruleDataType ) );
    public final void rule__Type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:560:1: ( ( ruleEntity ) | ( ruleDataType ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==20) ) {
                alt3=1;
            }
            else if ( (LA3_0==19) ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("556:1: rule__Type__Alternatives : ( ( ruleEntity ) | ( ruleDataType ) );", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:561:1: ( ruleEntity )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:561:1: ( ruleEntity )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:562:1: ruleEntity
                    {
                     before(grammarAccess.getTypeAccess().getEntityParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleEntity_in_rule__Type__Alternatives1133);
                    ruleEntity();
                    _fsp--;

                     after(grammarAccess.getTypeAccess().getEntityParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:567:6: ( ruleDataType )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:567:6: ( ruleDataType )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:568:1: ruleDataType
                    {
                     before(grammarAccess.getTypeAccess().getDataTypeParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleDataType_in_rule__Type__Alternatives1150);
                    ruleDataType();
                    _fsp--;

                     after(grammarAccess.getTypeAccess().getDataTypeParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Type__Alternatives


    // $ANTLR start rule__Feature__Alternatives
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:578:1: rule__Feature__Alternatives : ( ( ruleStructuralFeature ) | ( ruleOperation ) );
    public final void rule__Feature__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:582:1: ( ( ruleStructuralFeature ) | ( ruleOperation ) )
            int alt4=2;
            alt4 = dfa4.predict(input);
            switch (alt4) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:583:1: ( ruleStructuralFeature )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:583:1: ( ruleStructuralFeature )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:584:1: ruleStructuralFeature
                    {
                     before(grammarAccess.getFeatureAccess().getStructuralFeatureParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleStructuralFeature_in_rule__Feature__Alternatives1182);
                    ruleStructuralFeature();
                    _fsp--;

                     after(grammarAccess.getFeatureAccess().getStructuralFeatureParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:589:6: ( ruleOperation )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:589:6: ( ruleOperation )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:590:1: ruleOperation
                    {
                     before(grammarAccess.getFeatureAccess().getOperationParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleOperation_in_rule__Feature__Alternatives1199);
                    ruleOperation();
                    _fsp--;

                     after(grammarAccess.getFeatureAccess().getOperationParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Feature__Alternatives


    // $ANTLR start rule__StructuralFeature__Alternatives
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:600:1: rule__StructuralFeature__Alternatives : ( ( ruleAttribute ) | ( ruleReference ) );
    public final void rule__StructuralFeature__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:604:1: ( ( ruleAttribute ) | ( ruleReference ) )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==RULE_ID) ) {
                alt5=1;
            }
            else if ( (LA5_0==22) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("600:1: rule__StructuralFeature__Alternatives : ( ( ruleAttribute ) | ( ruleReference ) );", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:605:1: ( ruleAttribute )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:605:1: ( ruleAttribute )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:606:1: ruleAttribute
                    {
                     before(grammarAccess.getStructuralFeatureAccess().getAttributeParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleAttribute_in_rule__StructuralFeature__Alternatives1231);
                    ruleAttribute();
                    _fsp--;

                     after(grammarAccess.getStructuralFeatureAccess().getAttributeParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:611:6: ( ruleReference )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:611:6: ( ruleReference )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:612:1: ruleReference
                    {
                     before(grammarAccess.getStructuralFeatureAccess().getReferenceParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleReference_in_rule__StructuralFeature__Alternatives1248);
                    ruleReference();
                    _fsp--;

                     after(grammarAccess.getStructuralFeatureAccess().getReferenceParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StructuralFeature__Alternatives


    // $ANTLR start rule__Visibility__Alternatives
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:622:1: rule__Visibility__Alternatives : ( ( ( 'public' ) ) | ( ( 'private' ) ) | ( ( 'protected' ) ) );
    public final void rule__Visibility__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:626:1: ( ( ( 'public' ) ) | ( ( 'private' ) ) | ( ( 'protected' ) ) )
            int alt6=3;
            switch ( input.LA(1) ) {
            case 11:
                {
                alt6=1;
                }
                break;
            case 12:
                {
                alt6=2;
                }
                break;
            case 13:
                {
                alt6=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("622:1: rule__Visibility__Alternatives : ( ( ( 'public' ) ) | ( ( 'private' ) ) | ( ( 'protected' ) ) );", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:627:1: ( ( 'public' ) )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:627:1: ( ( 'public' ) )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:628:1: ( 'public' )
                    {
                     before(grammarAccess.getVisibilityAccess().getPublicEnumLiteralDeclaration_0()); 
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:629:1: ( 'public' )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:629:3: 'public'
                    {
                    match(input,11,FOLLOW_11_in_rule__Visibility__Alternatives1281); 

                    }

                     after(grammarAccess.getVisibilityAccess().getPublicEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:634:6: ( ( 'private' ) )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:634:6: ( ( 'private' ) )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:635:1: ( 'private' )
                    {
                     before(grammarAccess.getVisibilityAccess().getPrivateEnumLiteralDeclaration_1()); 
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:636:1: ( 'private' )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:636:3: 'private'
                    {
                    match(input,12,FOLLOW_12_in_rule__Visibility__Alternatives1302); 

                    }

                     after(grammarAccess.getVisibilityAccess().getPrivateEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:641:6: ( ( 'protected' ) )
                    {
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:641:6: ( ( 'protected' ) )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:642:1: ( 'protected' )
                    {
                     before(grammarAccess.getVisibilityAccess().getProtectedEnumLiteralDeclaration_2()); 
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:643:1: ( 'protected' )
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:643:3: 'protected'
                    {
                    match(input,13,FOLLOW_13_in_rule__Visibility__Alternatives1323); 

                    }

                     after(grammarAccess.getVisibilityAccess().getProtectedEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Visibility__Alternatives


    // $ANTLR start rule__Import__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:655:1: rule__Import__Group__0 : rule__Import__Group__0__Impl rule__Import__Group__1 ;
    public final void rule__Import__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:659:1: ( rule__Import__Group__0__Impl rule__Import__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:660:2: rule__Import__Group__0__Impl rule__Import__Group__1
            {
            pushFollow(FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__01356);
            rule__Import__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Import__Group__1_in_rule__Import__Group__01359);
            rule__Import__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Import__Group__0


    // $ANTLR start rule__Import__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:667:1: rule__Import__Group__0__Impl : ( 'import' ) ;
    public final void rule__Import__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:671:1: ( ( 'import' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:672:1: ( 'import' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:672:1: ( 'import' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:673:1: 'import'
            {
             before(grammarAccess.getImportAccess().getImportKeyword_0()); 
            match(input,14,FOLLOW_14_in_rule__Import__Group__0__Impl1387); 
             after(grammarAccess.getImportAccess().getImportKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Import__Group__0__Impl


    // $ANTLR start rule__Import__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:686:1: rule__Import__Group__1 : rule__Import__Group__1__Impl rule__Import__Group__2 ;
    public final void rule__Import__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:690:1: ( rule__Import__Group__1__Impl rule__Import__Group__2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:691:2: rule__Import__Group__1__Impl rule__Import__Group__2
            {
            pushFollow(FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__11418);
            rule__Import__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Import__Group__2_in_rule__Import__Group__11421);
            rule__Import__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Import__Group__1


    // $ANTLR start rule__Import__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:698:1: rule__Import__Group__1__Impl : ( ( rule__Import__ImportedNamespaceAssignment_1 ) ) ;
    public final void rule__Import__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:702:1: ( ( ( rule__Import__ImportedNamespaceAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:703:1: ( ( rule__Import__ImportedNamespaceAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:703:1: ( ( rule__Import__ImportedNamespaceAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:704:1: ( rule__Import__ImportedNamespaceAssignment_1 )
            {
             before(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:705:1: ( rule__Import__ImportedNamespaceAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:705:2: rule__Import__ImportedNamespaceAssignment_1
            {
            pushFollow(FOLLOW_rule__Import__ImportedNamespaceAssignment_1_in_rule__Import__Group__1__Impl1448);
            rule__Import__ImportedNamespaceAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Import__Group__1__Impl


    // $ANTLR start rule__Import__Group__2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:715:1: rule__Import__Group__2 : rule__Import__Group__2__Impl ;
    public final void rule__Import__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:719:1: ( rule__Import__Group__2__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:720:2: rule__Import__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__21478);
            rule__Import__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Import__Group__2


    // $ANTLR start rule__Import__Group__2__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:726:1: rule__Import__Group__2__Impl : ( ';' ) ;
    public final void rule__Import__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:730:1: ( ( ';' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:731:1: ( ';' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:731:1: ( ';' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:732:1: ';'
            {
             before(grammarAccess.getImportAccess().getSemicolonKeyword_2()); 
            match(input,15,FOLLOW_15_in_rule__Import__Group__2__Impl1506); 
             after(grammarAccess.getImportAccess().getSemicolonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Import__Group__2__Impl


    // $ANTLR start rule__PackageDeclaration__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:751:1: rule__PackageDeclaration__Group__0 : rule__PackageDeclaration__Group__0__Impl rule__PackageDeclaration__Group__1 ;
    public final void rule__PackageDeclaration__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:755:1: ( rule__PackageDeclaration__Group__0__Impl rule__PackageDeclaration__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:756:2: rule__PackageDeclaration__Group__0__Impl rule__PackageDeclaration__Group__1
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__0__Impl_in_rule__PackageDeclaration__Group__01543);
            rule__PackageDeclaration__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__1_in_rule__PackageDeclaration__Group__01546);
            rule__PackageDeclaration__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__0


    // $ANTLR start rule__PackageDeclaration__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:763:1: rule__PackageDeclaration__Group__0__Impl : ( 'package' ) ;
    public final void rule__PackageDeclaration__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:767:1: ( ( 'package' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:768:1: ( 'package' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:768:1: ( 'package' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:769:1: 'package'
            {
             before(grammarAccess.getPackageDeclarationAccess().getPackageKeyword_0()); 
            match(input,16,FOLLOW_16_in_rule__PackageDeclaration__Group__0__Impl1574); 
             after(grammarAccess.getPackageDeclarationAccess().getPackageKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__0__Impl


    // $ANTLR start rule__PackageDeclaration__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:782:1: rule__PackageDeclaration__Group__1 : rule__PackageDeclaration__Group__1__Impl rule__PackageDeclaration__Group__2 ;
    public final void rule__PackageDeclaration__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:786:1: ( rule__PackageDeclaration__Group__1__Impl rule__PackageDeclaration__Group__2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:787:2: rule__PackageDeclaration__Group__1__Impl rule__PackageDeclaration__Group__2
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__1__Impl_in_rule__PackageDeclaration__Group__11605);
            rule__PackageDeclaration__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__2_in_rule__PackageDeclaration__Group__11608);
            rule__PackageDeclaration__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__1


    // $ANTLR start rule__PackageDeclaration__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:794:1: rule__PackageDeclaration__Group__1__Impl : ( ( rule__PackageDeclaration__NameAssignment_1 ) ) ;
    public final void rule__PackageDeclaration__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:798:1: ( ( ( rule__PackageDeclaration__NameAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:799:1: ( ( rule__PackageDeclaration__NameAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:799:1: ( ( rule__PackageDeclaration__NameAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:800:1: ( rule__PackageDeclaration__NameAssignment_1 )
            {
             before(grammarAccess.getPackageDeclarationAccess().getNameAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:801:1: ( rule__PackageDeclaration__NameAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:801:2: rule__PackageDeclaration__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__NameAssignment_1_in_rule__PackageDeclaration__Group__1__Impl1635);
            rule__PackageDeclaration__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getPackageDeclarationAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__1__Impl


    // $ANTLR start rule__PackageDeclaration__Group__2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:811:1: rule__PackageDeclaration__Group__2 : rule__PackageDeclaration__Group__2__Impl rule__PackageDeclaration__Group__3 ;
    public final void rule__PackageDeclaration__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:815:1: ( rule__PackageDeclaration__Group__2__Impl rule__PackageDeclaration__Group__3 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:816:2: rule__PackageDeclaration__Group__2__Impl rule__PackageDeclaration__Group__3
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__2__Impl_in_rule__PackageDeclaration__Group__21665);
            rule__PackageDeclaration__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__3_in_rule__PackageDeclaration__Group__21668);
            rule__PackageDeclaration__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__2


    // $ANTLR start rule__PackageDeclaration__Group__2__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:823:1: rule__PackageDeclaration__Group__2__Impl : ( '{' ) ;
    public final void rule__PackageDeclaration__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:827:1: ( ( '{' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:828:1: ( '{' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:828:1: ( '{' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:829:1: '{'
            {
             before(grammarAccess.getPackageDeclarationAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,17,FOLLOW_17_in_rule__PackageDeclaration__Group__2__Impl1696); 
             after(grammarAccess.getPackageDeclarationAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__2__Impl


    // $ANTLR start rule__PackageDeclaration__Group__3
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:842:1: rule__PackageDeclaration__Group__3 : rule__PackageDeclaration__Group__3__Impl rule__PackageDeclaration__Group__4 ;
    public final void rule__PackageDeclaration__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:846:1: ( rule__PackageDeclaration__Group__3__Impl rule__PackageDeclaration__Group__4 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:847:2: rule__PackageDeclaration__Group__3__Impl rule__PackageDeclaration__Group__4
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__3__Impl_in_rule__PackageDeclaration__Group__31727);
            rule__PackageDeclaration__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__4_in_rule__PackageDeclaration__Group__31730);
            rule__PackageDeclaration__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__3


    // $ANTLR start rule__PackageDeclaration__Group__3__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:854:1: rule__PackageDeclaration__Group__3__Impl : ( ( rule__PackageDeclaration__ElementsAssignment_3 )* ) ;
    public final void rule__PackageDeclaration__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:858:1: ( ( ( rule__PackageDeclaration__ElementsAssignment_3 )* ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:859:1: ( ( rule__PackageDeclaration__ElementsAssignment_3 )* )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:859:1: ( ( rule__PackageDeclaration__ElementsAssignment_3 )* )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:860:1: ( rule__PackageDeclaration__ElementsAssignment_3 )*
            {
             before(grammarAccess.getPackageDeclarationAccess().getElementsAssignment_3()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:861:1: ( rule__PackageDeclaration__ElementsAssignment_3 )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==14||LA7_0==16||(LA7_0>=19 && LA7_0<=20)) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:861:2: rule__PackageDeclaration__ElementsAssignment_3
            	    {
            	    pushFollow(FOLLOW_rule__PackageDeclaration__ElementsAssignment_3_in_rule__PackageDeclaration__Group__3__Impl1757);
            	    rule__PackageDeclaration__ElementsAssignment_3();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);

             after(grammarAccess.getPackageDeclarationAccess().getElementsAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__3__Impl


    // $ANTLR start rule__PackageDeclaration__Group__4
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:871:1: rule__PackageDeclaration__Group__4 : rule__PackageDeclaration__Group__4__Impl ;
    public final void rule__PackageDeclaration__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:875:1: ( rule__PackageDeclaration__Group__4__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:876:2: rule__PackageDeclaration__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__4__Impl_in_rule__PackageDeclaration__Group__41788);
            rule__PackageDeclaration__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__4


    // $ANTLR start rule__PackageDeclaration__Group__4__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:882:1: rule__PackageDeclaration__Group__4__Impl : ( '}' ) ;
    public final void rule__PackageDeclaration__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:886:1: ( ( '}' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:887:1: ( '}' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:887:1: ( '}' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:888:1: '}'
            {
             before(grammarAccess.getPackageDeclarationAccess().getRightCurlyBracketKeyword_4()); 
            match(input,18,FOLLOW_18_in_rule__PackageDeclaration__Group__4__Impl1816); 
             after(grammarAccess.getPackageDeclarationAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__Group__4__Impl


    // $ANTLR start rule__DataType__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:911:1: rule__DataType__Group__0 : rule__DataType__Group__0__Impl rule__DataType__Group__1 ;
    public final void rule__DataType__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:915:1: ( rule__DataType__Group__0__Impl rule__DataType__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:916:2: rule__DataType__Group__0__Impl rule__DataType__Group__1
            {
            pushFollow(FOLLOW_rule__DataType__Group__0__Impl_in_rule__DataType__Group__01857);
            rule__DataType__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__DataType__Group__1_in_rule__DataType__Group__01860);
            rule__DataType__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DataType__Group__0


    // $ANTLR start rule__DataType__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:923:1: rule__DataType__Group__0__Impl : ( 'datatype' ) ;
    public final void rule__DataType__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:927:1: ( ( 'datatype' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:928:1: ( 'datatype' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:928:1: ( 'datatype' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:929:1: 'datatype'
            {
             before(grammarAccess.getDataTypeAccess().getDatatypeKeyword_0()); 
            match(input,19,FOLLOW_19_in_rule__DataType__Group__0__Impl1888); 
             after(grammarAccess.getDataTypeAccess().getDatatypeKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DataType__Group__0__Impl


    // $ANTLR start rule__DataType__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:942:1: rule__DataType__Group__1 : rule__DataType__Group__1__Impl rule__DataType__Group__2 ;
    public final void rule__DataType__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:946:1: ( rule__DataType__Group__1__Impl rule__DataType__Group__2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:947:2: rule__DataType__Group__1__Impl rule__DataType__Group__2
            {
            pushFollow(FOLLOW_rule__DataType__Group__1__Impl_in_rule__DataType__Group__11919);
            rule__DataType__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__DataType__Group__2_in_rule__DataType__Group__11922);
            rule__DataType__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DataType__Group__1


    // $ANTLR start rule__DataType__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:954:1: rule__DataType__Group__1__Impl : ( ( rule__DataType__NameAssignment_1 ) ) ;
    public final void rule__DataType__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:958:1: ( ( ( rule__DataType__NameAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:959:1: ( ( rule__DataType__NameAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:959:1: ( ( rule__DataType__NameAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:960:1: ( rule__DataType__NameAssignment_1 )
            {
             before(grammarAccess.getDataTypeAccess().getNameAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:961:1: ( rule__DataType__NameAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:961:2: rule__DataType__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__DataType__NameAssignment_1_in_rule__DataType__Group__1__Impl1949);
            rule__DataType__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getDataTypeAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DataType__Group__1__Impl


    // $ANTLR start rule__DataType__Group__2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:971:1: rule__DataType__Group__2 : rule__DataType__Group__2__Impl ;
    public final void rule__DataType__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:975:1: ( rule__DataType__Group__2__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:976:2: rule__DataType__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__DataType__Group__2__Impl_in_rule__DataType__Group__21979);
            rule__DataType__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DataType__Group__2


    // $ANTLR start rule__DataType__Group__2__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:982:1: rule__DataType__Group__2__Impl : ( ';' ) ;
    public final void rule__DataType__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:986:1: ( ( ';' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:987:1: ( ';' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:987:1: ( ';' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:988:1: ';'
            {
             before(grammarAccess.getDataTypeAccess().getSemicolonKeyword_2()); 
            match(input,15,FOLLOW_15_in_rule__DataType__Group__2__Impl2007); 
             after(grammarAccess.getDataTypeAccess().getSemicolonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DataType__Group__2__Impl


    // $ANTLR start rule__Entity__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1007:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ;
    public final void rule__Entity__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1011:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1012:2: rule__Entity__Group__0__Impl rule__Entity__Group__1
            {
            pushFollow(FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__02044);
            rule__Entity__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__02047);
            rule__Entity__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__0


    // $ANTLR start rule__Entity__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1019:1: rule__Entity__Group__0__Impl : ( 'entity' ) ;
    public final void rule__Entity__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1023:1: ( ( 'entity' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1024:1: ( 'entity' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1024:1: ( 'entity' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1025:1: 'entity'
            {
             before(grammarAccess.getEntityAccess().getEntityKeyword_0()); 
            match(input,20,FOLLOW_20_in_rule__Entity__Group__0__Impl2075); 
             after(grammarAccess.getEntityAccess().getEntityKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__0__Impl


    // $ANTLR start rule__Entity__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1038:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl rule__Entity__Group__2 ;
    public final void rule__Entity__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1042:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1043:2: rule__Entity__Group__1__Impl rule__Entity__Group__2
            {
            pushFollow(FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__12106);
            rule__Entity__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__12109);
            rule__Entity__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__1


    // $ANTLR start rule__Entity__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1050:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__NameAssignment_1 ) ) ;
    public final void rule__Entity__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1054:1: ( ( ( rule__Entity__NameAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1055:1: ( ( rule__Entity__NameAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1055:1: ( ( rule__Entity__NameAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1056:1: ( rule__Entity__NameAssignment_1 )
            {
             before(grammarAccess.getEntityAccess().getNameAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1057:1: ( rule__Entity__NameAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1057:2: rule__Entity__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl2136);
            rule__Entity__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getEntityAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__1__Impl


    // $ANTLR start rule__Entity__Group__2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1067:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl rule__Entity__Group__3 ;
    public final void rule__Entity__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1071:1: ( rule__Entity__Group__2__Impl rule__Entity__Group__3 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1072:2: rule__Entity__Group__2__Impl rule__Entity__Group__3
            {
            pushFollow(FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__22166);
            rule__Entity__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__22169);
            rule__Entity__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__2


    // $ANTLR start rule__Entity__Group__2__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1079:1: rule__Entity__Group__2__Impl : ( ( rule__Entity__Group_2__0 )? ) ;
    public final void rule__Entity__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1083:1: ( ( ( rule__Entity__Group_2__0 )? ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1084:1: ( ( rule__Entity__Group_2__0 )? )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1084:1: ( ( rule__Entity__Group_2__0 )? )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1085:1: ( rule__Entity__Group_2__0 )?
            {
             before(grammarAccess.getEntityAccess().getGroup_2()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1086:1: ( rule__Entity__Group_2__0 )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==21) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1086:2: rule__Entity__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl2196);
                    rule__Entity__Group_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getEntityAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__2__Impl


    // $ANTLR start rule__Entity__Group__3
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1096:1: rule__Entity__Group__3 : rule__Entity__Group__3__Impl rule__Entity__Group__4 ;
    public final void rule__Entity__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1100:1: ( rule__Entity__Group__3__Impl rule__Entity__Group__4 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1101:2: rule__Entity__Group__3__Impl rule__Entity__Group__4
            {
            pushFollow(FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__32227);
            rule__Entity__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__32230);
            rule__Entity__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__3


    // $ANTLR start rule__Entity__Group__3__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1108:1: rule__Entity__Group__3__Impl : ( '{' ) ;
    public final void rule__Entity__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1112:1: ( ( '{' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1113:1: ( '{' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1113:1: ( '{' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1114:1: '{'
            {
             before(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,17,FOLLOW_17_in_rule__Entity__Group__3__Impl2258); 
             after(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__3__Impl


    // $ANTLR start rule__Entity__Group__4
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1127:1: rule__Entity__Group__4 : rule__Entity__Group__4__Impl rule__Entity__Group__5 ;
    public final void rule__Entity__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1131:1: ( rule__Entity__Group__4__Impl rule__Entity__Group__5 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1132:2: rule__Entity__Group__4__Impl rule__Entity__Group__5
            {
            pushFollow(FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__42289);
            rule__Entity__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__42292);
            rule__Entity__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__4


    // $ANTLR start rule__Entity__Group__4__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1139:1: rule__Entity__Group__4__Impl : ( ( rule__Entity__FeaturesAssignment_4 )* ) ;
    public final void rule__Entity__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1143:1: ( ( ( rule__Entity__FeaturesAssignment_4 )* ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1144:1: ( ( rule__Entity__FeaturesAssignment_4 )* )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1144:1: ( ( rule__Entity__FeaturesAssignment_4 )* )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1145:1: ( rule__Entity__FeaturesAssignment_4 )*
            {
             before(grammarAccess.getEntityAccess().getFeaturesAssignment_4()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1146:1: ( rule__Entity__FeaturesAssignment_4 )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==RULE_ID||(LA9_0>=11 && LA9_0<=13)||LA9_0==22) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1146:2: rule__Entity__FeaturesAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__Entity__FeaturesAssignment_4_in_rule__Entity__Group__4__Impl2319);
            	    rule__Entity__FeaturesAssignment_4();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

             after(grammarAccess.getEntityAccess().getFeaturesAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__4__Impl


    // $ANTLR start rule__Entity__Group__5
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1156:1: rule__Entity__Group__5 : rule__Entity__Group__5__Impl ;
    public final void rule__Entity__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1160:1: ( rule__Entity__Group__5__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1161:2: rule__Entity__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__52350);
            rule__Entity__Group__5__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__5


    // $ANTLR start rule__Entity__Group__5__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1167:1: rule__Entity__Group__5__Impl : ( '}' ) ;
    public final void rule__Entity__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1171:1: ( ( '}' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1172:1: ( '}' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1172:1: ( '}' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1173:1: '}'
            {
             before(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 
            match(input,18,FOLLOW_18_in_rule__Entity__Group__5__Impl2378); 
             after(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group__5__Impl


    // $ANTLR start rule__Entity__Group_2__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1198:1: rule__Entity__Group_2__0 : rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ;
    public final void rule__Entity__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1202:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1203:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__02421);
            rule__Entity__Group_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__02424);
            rule__Entity__Group_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group_2__0


    // $ANTLR start rule__Entity__Group_2__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1210:1: rule__Entity__Group_2__0__Impl : ( 'extends' ) ;
    public final void rule__Entity__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1214:1: ( ( 'extends' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1215:1: ( 'extends' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1215:1: ( 'extends' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1216:1: 'extends'
            {
             before(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 
            match(input,21,FOLLOW_21_in_rule__Entity__Group_2__0__Impl2452); 
             after(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group_2__0__Impl


    // $ANTLR start rule__Entity__Group_2__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1229:1: rule__Entity__Group_2__1 : rule__Entity__Group_2__1__Impl ;
    public final void rule__Entity__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1233:1: ( rule__Entity__Group_2__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1234:2: rule__Entity__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__12483);
            rule__Entity__Group_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group_2__1


    // $ANTLR start rule__Entity__Group_2__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1240:1: rule__Entity__Group_2__1__Impl : ( ( rule__Entity__SuperTypeAssignment_2_1 ) ) ;
    public final void rule__Entity__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1244:1: ( ( ( rule__Entity__SuperTypeAssignment_2_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1245:1: ( ( rule__Entity__SuperTypeAssignment_2_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1245:1: ( ( rule__Entity__SuperTypeAssignment_2_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1246:1: ( rule__Entity__SuperTypeAssignment_2_1 )
            {
             before(grammarAccess.getEntityAccess().getSuperTypeAssignment_2_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1247:1: ( rule__Entity__SuperTypeAssignment_2_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1247:2: rule__Entity__SuperTypeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Entity__SuperTypeAssignment_2_1_in_rule__Entity__Group_2__1__Impl2510);
            rule__Entity__SuperTypeAssignment_2_1();
            _fsp--;


            }

             after(grammarAccess.getEntityAccess().getSuperTypeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__Group_2__1__Impl


    // $ANTLR start rule__Attribute__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1261:1: rule__Attribute__Group__0 : rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ;
    public final void rule__Attribute__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1265:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1266:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__02544);
            rule__Attribute__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__02547);
            rule__Attribute__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__Group__0


    // $ANTLR start rule__Attribute__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1273:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__TypeAssignment_0 ) ) ;
    public final void rule__Attribute__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1277:1: ( ( ( rule__Attribute__TypeAssignment_0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1278:1: ( ( rule__Attribute__TypeAssignment_0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1278:1: ( ( rule__Attribute__TypeAssignment_0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1279:1: ( rule__Attribute__TypeAssignment_0 )
            {
             before(grammarAccess.getAttributeAccess().getTypeAssignment_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1280:1: ( rule__Attribute__TypeAssignment_0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1280:2: rule__Attribute__TypeAssignment_0
            {
            pushFollow(FOLLOW_rule__Attribute__TypeAssignment_0_in_rule__Attribute__Group__0__Impl2574);
            rule__Attribute__TypeAssignment_0();
            _fsp--;


            }

             after(grammarAccess.getAttributeAccess().getTypeAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__Group__0__Impl


    // $ANTLR start rule__Attribute__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1290:1: rule__Attribute__Group__1 : rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ;
    public final void rule__Attribute__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1294:1: ( rule__Attribute__Group__1__Impl rule__Attribute__Group__2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1295:2: rule__Attribute__Group__1__Impl rule__Attribute__Group__2
            {
            pushFollow(FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__12604);
            rule__Attribute__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__12607);
            rule__Attribute__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__Group__1


    // $ANTLR start rule__Attribute__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1302:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__NameAssignment_1 ) ) ;
    public final void rule__Attribute__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1306:1: ( ( ( rule__Attribute__NameAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1307:1: ( ( rule__Attribute__NameAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1307:1: ( ( rule__Attribute__NameAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1308:1: ( rule__Attribute__NameAssignment_1 )
            {
             before(grammarAccess.getAttributeAccess().getNameAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1309:1: ( rule__Attribute__NameAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1309:2: rule__Attribute__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Attribute__NameAssignment_1_in_rule__Attribute__Group__1__Impl2634);
            rule__Attribute__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getAttributeAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__Group__1__Impl


    // $ANTLR start rule__Attribute__Group__2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1319:1: rule__Attribute__Group__2 : rule__Attribute__Group__2__Impl ;
    public final void rule__Attribute__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1323:1: ( rule__Attribute__Group__2__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1324:2: rule__Attribute__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__22664);
            rule__Attribute__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__Group__2


    // $ANTLR start rule__Attribute__Group__2__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1330:1: rule__Attribute__Group__2__Impl : ( ';' ) ;
    public final void rule__Attribute__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1334:1: ( ( ';' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1335:1: ( ';' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1335:1: ( ';' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1336:1: ';'
            {
             before(grammarAccess.getAttributeAccess().getSemicolonKeyword_2()); 
            match(input,15,FOLLOW_15_in_rule__Attribute__Group__2__Impl2692); 
             after(grammarAccess.getAttributeAccess().getSemicolonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__Group__2__Impl


    // $ANTLR start rule__Reference__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1355:1: rule__Reference__Group__0 : rule__Reference__Group__0__Impl rule__Reference__Group__1 ;
    public final void rule__Reference__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1359:1: ( rule__Reference__Group__0__Impl rule__Reference__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1360:2: rule__Reference__Group__0__Impl rule__Reference__Group__1
            {
            pushFollow(FOLLOW_rule__Reference__Group__0__Impl_in_rule__Reference__Group__02729);
            rule__Reference__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Reference__Group__1_in_rule__Reference__Group__02732);
            rule__Reference__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__0


    // $ANTLR start rule__Reference__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1367:1: rule__Reference__Group__0__Impl : ( 'ref' ) ;
    public final void rule__Reference__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1371:1: ( ( 'ref' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1372:1: ( 'ref' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1372:1: ( 'ref' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1373:1: 'ref'
            {
             before(grammarAccess.getReferenceAccess().getRefKeyword_0()); 
            match(input,22,FOLLOW_22_in_rule__Reference__Group__0__Impl2760); 
             after(grammarAccess.getReferenceAccess().getRefKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__0__Impl


    // $ANTLR start rule__Reference__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1386:1: rule__Reference__Group__1 : rule__Reference__Group__1__Impl rule__Reference__Group__2 ;
    public final void rule__Reference__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1390:1: ( rule__Reference__Group__1__Impl rule__Reference__Group__2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1391:2: rule__Reference__Group__1__Impl rule__Reference__Group__2
            {
            pushFollow(FOLLOW_rule__Reference__Group__1__Impl_in_rule__Reference__Group__12791);
            rule__Reference__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Reference__Group__2_in_rule__Reference__Group__12794);
            rule__Reference__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__1


    // $ANTLR start rule__Reference__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1398:1: rule__Reference__Group__1__Impl : ( ( rule__Reference__TypeAssignment_1 ) ) ;
    public final void rule__Reference__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1402:1: ( ( ( rule__Reference__TypeAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1403:1: ( ( rule__Reference__TypeAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1403:1: ( ( rule__Reference__TypeAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1404:1: ( rule__Reference__TypeAssignment_1 )
            {
             before(grammarAccess.getReferenceAccess().getTypeAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1405:1: ( rule__Reference__TypeAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1405:2: rule__Reference__TypeAssignment_1
            {
            pushFollow(FOLLOW_rule__Reference__TypeAssignment_1_in_rule__Reference__Group__1__Impl2821);
            rule__Reference__TypeAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getReferenceAccess().getTypeAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__1__Impl


    // $ANTLR start rule__Reference__Group__2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1415:1: rule__Reference__Group__2 : rule__Reference__Group__2__Impl rule__Reference__Group__3 ;
    public final void rule__Reference__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1419:1: ( rule__Reference__Group__2__Impl rule__Reference__Group__3 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1420:2: rule__Reference__Group__2__Impl rule__Reference__Group__3
            {
            pushFollow(FOLLOW_rule__Reference__Group__2__Impl_in_rule__Reference__Group__22851);
            rule__Reference__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Reference__Group__3_in_rule__Reference__Group__22854);
            rule__Reference__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__2


    // $ANTLR start rule__Reference__Group__2__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1427:1: rule__Reference__Group__2__Impl : ( ( rule__Reference__Group_2__0 )? ) ;
    public final void rule__Reference__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1431:1: ( ( ( rule__Reference__Group_2__0 )? ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1432:1: ( ( rule__Reference__Group_2__0 )? )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1432:1: ( ( rule__Reference__Group_2__0 )? )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1433:1: ( rule__Reference__Group_2__0 )?
            {
             before(grammarAccess.getReferenceAccess().getGroup_2()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1434:1: ( rule__Reference__Group_2__0 )?
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==23) ) {
                alt10=1;
            }
            switch (alt10) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1434:2: rule__Reference__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Reference__Group_2__0_in_rule__Reference__Group__2__Impl2881);
                    rule__Reference__Group_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getReferenceAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__2__Impl


    // $ANTLR start rule__Reference__Group__3
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1444:1: rule__Reference__Group__3 : rule__Reference__Group__3__Impl rule__Reference__Group__4 ;
    public final void rule__Reference__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1448:1: ( rule__Reference__Group__3__Impl rule__Reference__Group__4 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1449:2: rule__Reference__Group__3__Impl rule__Reference__Group__4
            {
            pushFollow(FOLLOW_rule__Reference__Group__3__Impl_in_rule__Reference__Group__32912);
            rule__Reference__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Reference__Group__4_in_rule__Reference__Group__32915);
            rule__Reference__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__3


    // $ANTLR start rule__Reference__Group__3__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1456:1: rule__Reference__Group__3__Impl : ( ( rule__Reference__NameAssignment_3 ) ) ;
    public final void rule__Reference__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1460:1: ( ( ( rule__Reference__NameAssignment_3 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1461:1: ( ( rule__Reference__NameAssignment_3 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1461:1: ( ( rule__Reference__NameAssignment_3 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1462:1: ( rule__Reference__NameAssignment_3 )
            {
             before(grammarAccess.getReferenceAccess().getNameAssignment_3()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1463:1: ( rule__Reference__NameAssignment_3 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1463:2: rule__Reference__NameAssignment_3
            {
            pushFollow(FOLLOW_rule__Reference__NameAssignment_3_in_rule__Reference__Group__3__Impl2942);
            rule__Reference__NameAssignment_3();
            _fsp--;


            }

             after(grammarAccess.getReferenceAccess().getNameAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__3__Impl


    // $ANTLR start rule__Reference__Group__4
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1473:1: rule__Reference__Group__4 : rule__Reference__Group__4__Impl ;
    public final void rule__Reference__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1477:1: ( rule__Reference__Group__4__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1478:2: rule__Reference__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Reference__Group__4__Impl_in_rule__Reference__Group__42972);
            rule__Reference__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__4


    // $ANTLR start rule__Reference__Group__4__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1484:1: rule__Reference__Group__4__Impl : ( ';' ) ;
    public final void rule__Reference__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1488:1: ( ( ';' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1489:1: ( ';' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1489:1: ( ';' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1490:1: ';'
            {
             before(grammarAccess.getReferenceAccess().getSemicolonKeyword_4()); 
            match(input,15,FOLLOW_15_in_rule__Reference__Group__4__Impl3000); 
             after(grammarAccess.getReferenceAccess().getSemicolonKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group__4__Impl


    // $ANTLR start rule__Reference__Group_2__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1513:1: rule__Reference__Group_2__0 : rule__Reference__Group_2__0__Impl rule__Reference__Group_2__1 ;
    public final void rule__Reference__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1517:1: ( rule__Reference__Group_2__0__Impl rule__Reference__Group_2__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1518:2: rule__Reference__Group_2__0__Impl rule__Reference__Group_2__1
            {
            pushFollow(FOLLOW_rule__Reference__Group_2__0__Impl_in_rule__Reference__Group_2__03041);
            rule__Reference__Group_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Reference__Group_2__1_in_rule__Reference__Group_2__03044);
            rule__Reference__Group_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group_2__0


    // $ANTLR start rule__Reference__Group_2__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1525:1: rule__Reference__Group_2__0__Impl : ( 'opposite' ) ;
    public final void rule__Reference__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1529:1: ( ( 'opposite' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1530:1: ( 'opposite' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1530:1: ( 'opposite' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1531:1: 'opposite'
            {
             before(grammarAccess.getReferenceAccess().getOppositeKeyword_2_0()); 
            match(input,23,FOLLOW_23_in_rule__Reference__Group_2__0__Impl3072); 
             after(grammarAccess.getReferenceAccess().getOppositeKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group_2__0__Impl


    // $ANTLR start rule__Reference__Group_2__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1544:1: rule__Reference__Group_2__1 : rule__Reference__Group_2__1__Impl ;
    public final void rule__Reference__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1548:1: ( rule__Reference__Group_2__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1549:2: rule__Reference__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Reference__Group_2__1__Impl_in_rule__Reference__Group_2__13103);
            rule__Reference__Group_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group_2__1


    // $ANTLR start rule__Reference__Group_2__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1555:1: rule__Reference__Group_2__1__Impl : ( ( rule__Reference__OppositeAssignment_2_1 ) ) ;
    public final void rule__Reference__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1559:1: ( ( ( rule__Reference__OppositeAssignment_2_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1560:1: ( ( rule__Reference__OppositeAssignment_2_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1560:1: ( ( rule__Reference__OppositeAssignment_2_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1561:1: ( rule__Reference__OppositeAssignment_2_1 )
            {
             before(grammarAccess.getReferenceAccess().getOppositeAssignment_2_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1562:1: ( rule__Reference__OppositeAssignment_2_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1562:2: rule__Reference__OppositeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Reference__OppositeAssignment_2_1_in_rule__Reference__Group_2__1__Impl3130);
            rule__Reference__OppositeAssignment_2_1();
            _fsp--;


            }

             after(grammarAccess.getReferenceAccess().getOppositeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__Group_2__1__Impl


    // $ANTLR start rule__Operation__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1576:1: rule__Operation__Group__0 : rule__Operation__Group__0__Impl rule__Operation__Group__1 ;
    public final void rule__Operation__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1580:1: ( rule__Operation__Group__0__Impl rule__Operation__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1581:2: rule__Operation__Group__0__Impl rule__Operation__Group__1
            {
            pushFollow(FOLLOW_rule__Operation__Group__0__Impl_in_rule__Operation__Group__03164);
            rule__Operation__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group__1_in_rule__Operation__Group__03167);
            rule__Operation__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__0


    // $ANTLR start rule__Operation__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1588:1: rule__Operation__Group__0__Impl : ( ( rule__Operation__VisibilityAssignment_0 )? ) ;
    public final void rule__Operation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1592:1: ( ( ( rule__Operation__VisibilityAssignment_0 )? ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1593:1: ( ( rule__Operation__VisibilityAssignment_0 )? )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1593:1: ( ( rule__Operation__VisibilityAssignment_0 )? )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1594:1: ( rule__Operation__VisibilityAssignment_0 )?
            {
             before(grammarAccess.getOperationAccess().getVisibilityAssignment_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1595:1: ( rule__Operation__VisibilityAssignment_0 )?
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( ((LA11_0>=11 && LA11_0<=13)) ) {
                alt11=1;
            }
            switch (alt11) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1595:2: rule__Operation__VisibilityAssignment_0
                    {
                    pushFollow(FOLLOW_rule__Operation__VisibilityAssignment_0_in_rule__Operation__Group__0__Impl3194);
                    rule__Operation__VisibilityAssignment_0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getOperationAccess().getVisibilityAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__0__Impl


    // $ANTLR start rule__Operation__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1605:1: rule__Operation__Group__1 : rule__Operation__Group__1__Impl rule__Operation__Group__2 ;
    public final void rule__Operation__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1609:1: ( rule__Operation__Group__1__Impl rule__Operation__Group__2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1610:2: rule__Operation__Group__1__Impl rule__Operation__Group__2
            {
            pushFollow(FOLLOW_rule__Operation__Group__1__Impl_in_rule__Operation__Group__13225);
            rule__Operation__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group__2_in_rule__Operation__Group__13228);
            rule__Operation__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__1


    // $ANTLR start rule__Operation__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1617:1: rule__Operation__Group__1__Impl : ( ( rule__Operation__TypeAssignment_1 ) ) ;
    public final void rule__Operation__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1621:1: ( ( ( rule__Operation__TypeAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1622:1: ( ( rule__Operation__TypeAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1622:1: ( ( rule__Operation__TypeAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1623:1: ( rule__Operation__TypeAssignment_1 )
            {
             before(grammarAccess.getOperationAccess().getTypeAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1624:1: ( rule__Operation__TypeAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1624:2: rule__Operation__TypeAssignment_1
            {
            pushFollow(FOLLOW_rule__Operation__TypeAssignment_1_in_rule__Operation__Group__1__Impl3255);
            rule__Operation__TypeAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getOperationAccess().getTypeAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__1__Impl


    // $ANTLR start rule__Operation__Group__2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1634:1: rule__Operation__Group__2 : rule__Operation__Group__2__Impl rule__Operation__Group__3 ;
    public final void rule__Operation__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1638:1: ( rule__Operation__Group__2__Impl rule__Operation__Group__3 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1639:2: rule__Operation__Group__2__Impl rule__Operation__Group__3
            {
            pushFollow(FOLLOW_rule__Operation__Group__2__Impl_in_rule__Operation__Group__23285);
            rule__Operation__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group__3_in_rule__Operation__Group__23288);
            rule__Operation__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__2


    // $ANTLR start rule__Operation__Group__2__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1646:1: rule__Operation__Group__2__Impl : ( ( rule__Operation__NameAssignment_2 ) ) ;
    public final void rule__Operation__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1650:1: ( ( ( rule__Operation__NameAssignment_2 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1651:1: ( ( rule__Operation__NameAssignment_2 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1651:1: ( ( rule__Operation__NameAssignment_2 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1652:1: ( rule__Operation__NameAssignment_2 )
            {
             before(grammarAccess.getOperationAccess().getNameAssignment_2()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1653:1: ( rule__Operation__NameAssignment_2 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1653:2: rule__Operation__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__Operation__NameAssignment_2_in_rule__Operation__Group__2__Impl3315);
            rule__Operation__NameAssignment_2();
            _fsp--;


            }

             after(grammarAccess.getOperationAccess().getNameAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__2__Impl


    // $ANTLR start rule__Operation__Group__3
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1663:1: rule__Operation__Group__3 : rule__Operation__Group__3__Impl rule__Operation__Group__4 ;
    public final void rule__Operation__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1667:1: ( rule__Operation__Group__3__Impl rule__Operation__Group__4 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1668:2: rule__Operation__Group__3__Impl rule__Operation__Group__4
            {
            pushFollow(FOLLOW_rule__Operation__Group__3__Impl_in_rule__Operation__Group__33345);
            rule__Operation__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group__4_in_rule__Operation__Group__33348);
            rule__Operation__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__3


    // $ANTLR start rule__Operation__Group__3__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1675:1: rule__Operation__Group__3__Impl : ( '(' ) ;
    public final void rule__Operation__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1679:1: ( ( '(' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1680:1: ( '(' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1680:1: ( '(' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1681:1: '('
            {
             before(grammarAccess.getOperationAccess().getLeftParenthesisKeyword_3()); 
            match(input,24,FOLLOW_24_in_rule__Operation__Group__3__Impl3376); 
             after(grammarAccess.getOperationAccess().getLeftParenthesisKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__3__Impl


    // $ANTLR start rule__Operation__Group__4
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1694:1: rule__Operation__Group__4 : rule__Operation__Group__4__Impl rule__Operation__Group__5 ;
    public final void rule__Operation__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1698:1: ( rule__Operation__Group__4__Impl rule__Operation__Group__5 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1699:2: rule__Operation__Group__4__Impl rule__Operation__Group__5
            {
            pushFollow(FOLLOW_rule__Operation__Group__4__Impl_in_rule__Operation__Group__43407);
            rule__Operation__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group__5_in_rule__Operation__Group__43410);
            rule__Operation__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__4


    // $ANTLR start rule__Operation__Group__4__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1706:1: rule__Operation__Group__4__Impl : ( ( rule__Operation__Group_4__0 )? ) ;
    public final void rule__Operation__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1710:1: ( ( ( rule__Operation__Group_4__0 )? ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1711:1: ( ( rule__Operation__Group_4__0 )? )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1711:1: ( ( rule__Operation__Group_4__0 )? )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1712:1: ( rule__Operation__Group_4__0 )?
            {
             before(grammarAccess.getOperationAccess().getGroup_4()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1713:1: ( rule__Operation__Group_4__0 )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==RULE_ID) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1713:2: rule__Operation__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__Operation__Group_4__0_in_rule__Operation__Group__4__Impl3437);
                    rule__Operation__Group_4__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getOperationAccess().getGroup_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__4__Impl


    // $ANTLR start rule__Operation__Group__5
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1723:1: rule__Operation__Group__5 : rule__Operation__Group__5__Impl rule__Operation__Group__6 ;
    public final void rule__Operation__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1727:1: ( rule__Operation__Group__5__Impl rule__Operation__Group__6 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1728:2: rule__Operation__Group__5__Impl rule__Operation__Group__6
            {
            pushFollow(FOLLOW_rule__Operation__Group__5__Impl_in_rule__Operation__Group__53468);
            rule__Operation__Group__5__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group__6_in_rule__Operation__Group__53471);
            rule__Operation__Group__6();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__5


    // $ANTLR start rule__Operation__Group__5__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1735:1: rule__Operation__Group__5__Impl : ( ')' ) ;
    public final void rule__Operation__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1739:1: ( ( ')' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1740:1: ( ')' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1740:1: ( ')' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1741:1: ')'
            {
             before(grammarAccess.getOperationAccess().getRightParenthesisKeyword_5()); 
            match(input,25,FOLLOW_25_in_rule__Operation__Group__5__Impl3499); 
             after(grammarAccess.getOperationAccess().getRightParenthesisKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__5__Impl


    // $ANTLR start rule__Operation__Group__6
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1754:1: rule__Operation__Group__6 : rule__Operation__Group__6__Impl ;
    public final void rule__Operation__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1758:1: ( rule__Operation__Group__6__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1759:2: rule__Operation__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group__6__Impl_in_rule__Operation__Group__63530);
            rule__Operation__Group__6__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__6


    // $ANTLR start rule__Operation__Group__6__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1765:1: rule__Operation__Group__6__Impl : ( ';' ) ;
    public final void rule__Operation__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1769:1: ( ( ';' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1770:1: ( ';' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1770:1: ( ';' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1771:1: ';'
            {
             before(grammarAccess.getOperationAccess().getSemicolonKeyword_6()); 
            match(input,15,FOLLOW_15_in_rule__Operation__Group__6__Impl3558); 
             after(grammarAccess.getOperationAccess().getSemicolonKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group__6__Impl


    // $ANTLR start rule__Operation__Group_4__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1798:1: rule__Operation__Group_4__0 : rule__Operation__Group_4__0__Impl rule__Operation__Group_4__1 ;
    public final void rule__Operation__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1802:1: ( rule__Operation__Group_4__0__Impl rule__Operation__Group_4__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1803:2: rule__Operation__Group_4__0__Impl rule__Operation__Group_4__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_4__0__Impl_in_rule__Operation__Group_4__03603);
            rule__Operation__Group_4__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group_4__1_in_rule__Operation__Group_4__03606);
            rule__Operation__Group_4__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4__0


    // $ANTLR start rule__Operation__Group_4__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1810:1: rule__Operation__Group_4__0__Impl : ( ( rule__Operation__ParamsAssignment_4_0 ) ) ;
    public final void rule__Operation__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1814:1: ( ( ( rule__Operation__ParamsAssignment_4_0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1815:1: ( ( rule__Operation__ParamsAssignment_4_0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1815:1: ( ( rule__Operation__ParamsAssignment_4_0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1816:1: ( rule__Operation__ParamsAssignment_4_0 )
            {
             before(grammarAccess.getOperationAccess().getParamsAssignment_4_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1817:1: ( rule__Operation__ParamsAssignment_4_0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1817:2: rule__Operation__ParamsAssignment_4_0
            {
            pushFollow(FOLLOW_rule__Operation__ParamsAssignment_4_0_in_rule__Operation__Group_4__0__Impl3633);
            rule__Operation__ParamsAssignment_4_0();
            _fsp--;


            }

             after(grammarAccess.getOperationAccess().getParamsAssignment_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4__0__Impl


    // $ANTLR start rule__Operation__Group_4__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1827:1: rule__Operation__Group_4__1 : rule__Operation__Group_4__1__Impl ;
    public final void rule__Operation__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1831:1: ( rule__Operation__Group_4__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1832:2: rule__Operation__Group_4__1__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_4__1__Impl_in_rule__Operation__Group_4__13663);
            rule__Operation__Group_4__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4__1


    // $ANTLR start rule__Operation__Group_4__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1838:1: rule__Operation__Group_4__1__Impl : ( ( rule__Operation__Group_4_1__0 )* ) ;
    public final void rule__Operation__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1842:1: ( ( ( rule__Operation__Group_4_1__0 )* ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1843:1: ( ( rule__Operation__Group_4_1__0 )* )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1843:1: ( ( rule__Operation__Group_4_1__0 )* )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1844:1: ( rule__Operation__Group_4_1__0 )*
            {
             before(grammarAccess.getOperationAccess().getGroup_4_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1845:1: ( rule__Operation__Group_4_1__0 )*
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( (LA13_0==26) ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1845:2: rule__Operation__Group_4_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Operation__Group_4_1__0_in_rule__Operation__Group_4__1__Impl3690);
            	    rule__Operation__Group_4_1__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop13;
                }
            } while (true);

             after(grammarAccess.getOperationAccess().getGroup_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4__1__Impl


    // $ANTLR start rule__Operation__Group_4_1__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1859:1: rule__Operation__Group_4_1__0 : rule__Operation__Group_4_1__0__Impl rule__Operation__Group_4_1__1 ;
    public final void rule__Operation__Group_4_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1863:1: ( rule__Operation__Group_4_1__0__Impl rule__Operation__Group_4_1__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1864:2: rule__Operation__Group_4_1__0__Impl rule__Operation__Group_4_1__1
            {
            pushFollow(FOLLOW_rule__Operation__Group_4_1__0__Impl_in_rule__Operation__Group_4_1__03725);
            rule__Operation__Group_4_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Operation__Group_4_1__1_in_rule__Operation__Group_4_1__03728);
            rule__Operation__Group_4_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4_1__0


    // $ANTLR start rule__Operation__Group_4_1__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1871:1: rule__Operation__Group_4_1__0__Impl : ( ',' ) ;
    public final void rule__Operation__Group_4_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1875:1: ( ( ',' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1876:1: ( ',' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1876:1: ( ',' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1877:1: ','
            {
             before(grammarAccess.getOperationAccess().getCommaKeyword_4_1_0()); 
            match(input,26,FOLLOW_26_in_rule__Operation__Group_4_1__0__Impl3756); 
             after(grammarAccess.getOperationAccess().getCommaKeyword_4_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4_1__0__Impl


    // $ANTLR start rule__Operation__Group_4_1__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1890:1: rule__Operation__Group_4_1__1 : rule__Operation__Group_4_1__1__Impl ;
    public final void rule__Operation__Group_4_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1894:1: ( rule__Operation__Group_4_1__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1895:2: rule__Operation__Group_4_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Operation__Group_4_1__1__Impl_in_rule__Operation__Group_4_1__13787);
            rule__Operation__Group_4_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4_1__1


    // $ANTLR start rule__Operation__Group_4_1__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1901:1: rule__Operation__Group_4_1__1__Impl : ( ( rule__Operation__ParamsAssignment_4_1_1 ) ) ;
    public final void rule__Operation__Group_4_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1905:1: ( ( ( rule__Operation__ParamsAssignment_4_1_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1906:1: ( ( rule__Operation__ParamsAssignment_4_1_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1906:1: ( ( rule__Operation__ParamsAssignment_4_1_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1907:1: ( rule__Operation__ParamsAssignment_4_1_1 )
            {
             before(grammarAccess.getOperationAccess().getParamsAssignment_4_1_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1908:1: ( rule__Operation__ParamsAssignment_4_1_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1908:2: rule__Operation__ParamsAssignment_4_1_1
            {
            pushFollow(FOLLOW_rule__Operation__ParamsAssignment_4_1_1_in_rule__Operation__Group_4_1__1__Impl3814);
            rule__Operation__ParamsAssignment_4_1_1();
            _fsp--;


            }

             after(grammarAccess.getOperationAccess().getParamsAssignment_4_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__Group_4_1__1__Impl


    // $ANTLR start rule__Parameter__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1922:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
    public final void rule__Parameter__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1926:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1927:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
            {
            pushFollow(FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__03848);
            rule__Parameter__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__03851);
            rule__Parameter__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Parameter__Group__0


    // $ANTLR start rule__Parameter__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1934:1: rule__Parameter__Group__0__Impl : ( ( rule__Parameter__NameAssignment_0 ) ) ;
    public final void rule__Parameter__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1938:1: ( ( ( rule__Parameter__NameAssignment_0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1939:1: ( ( rule__Parameter__NameAssignment_0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1939:1: ( ( rule__Parameter__NameAssignment_0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1940:1: ( rule__Parameter__NameAssignment_0 )
            {
             before(grammarAccess.getParameterAccess().getNameAssignment_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1941:1: ( rule__Parameter__NameAssignment_0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1941:2: rule__Parameter__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__Parameter__NameAssignment_0_in_rule__Parameter__Group__0__Impl3878);
            rule__Parameter__NameAssignment_0();
            _fsp--;


            }

             after(grammarAccess.getParameterAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Parameter__Group__0__Impl


    // $ANTLR start rule__Parameter__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1951:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl ;
    public final void rule__Parameter__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1955:1: ( rule__Parameter__Group__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1956:2: rule__Parameter__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__13908);
            rule__Parameter__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Parameter__Group__1


    // $ANTLR start rule__Parameter__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1962:1: rule__Parameter__Group__1__Impl : ( ( rule__Parameter__TypeAssignment_1 ) ) ;
    public final void rule__Parameter__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1966:1: ( ( ( rule__Parameter__TypeAssignment_1 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1967:1: ( ( rule__Parameter__TypeAssignment_1 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1967:1: ( ( rule__Parameter__TypeAssignment_1 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1968:1: ( rule__Parameter__TypeAssignment_1 )
            {
             before(grammarAccess.getParameterAccess().getTypeAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1969:1: ( rule__Parameter__TypeAssignment_1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1969:2: rule__Parameter__TypeAssignment_1
            {
            pushFollow(FOLLOW_rule__Parameter__TypeAssignment_1_in_rule__Parameter__Group__1__Impl3935);
            rule__Parameter__TypeAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getParameterAccess().getTypeAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Parameter__Group__1__Impl


    // $ANTLR start rule__TypeRef__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1983:1: rule__TypeRef__Group__0 : rule__TypeRef__Group__0__Impl rule__TypeRef__Group__1 ;
    public final void rule__TypeRef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1987:1: ( rule__TypeRef__Group__0__Impl rule__TypeRef__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1988:2: rule__TypeRef__Group__0__Impl rule__TypeRef__Group__1
            {
            pushFollow(FOLLOW_rule__TypeRef__Group__0__Impl_in_rule__TypeRef__Group__03969);
            rule__TypeRef__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__TypeRef__Group__1_in_rule__TypeRef__Group__03972);
            rule__TypeRef__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__TypeRef__Group__0


    // $ANTLR start rule__TypeRef__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1995:1: rule__TypeRef__Group__0__Impl : ( ( rule__TypeRef__ReferencedAssignment_0 ) ) ;
    public final void rule__TypeRef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:1999:1: ( ( ( rule__TypeRef__ReferencedAssignment_0 ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2000:1: ( ( rule__TypeRef__ReferencedAssignment_0 ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2000:1: ( ( rule__TypeRef__ReferencedAssignment_0 ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2001:1: ( rule__TypeRef__ReferencedAssignment_0 )
            {
             before(grammarAccess.getTypeRefAccess().getReferencedAssignment_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2002:1: ( rule__TypeRef__ReferencedAssignment_0 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2002:2: rule__TypeRef__ReferencedAssignment_0
            {
            pushFollow(FOLLOW_rule__TypeRef__ReferencedAssignment_0_in_rule__TypeRef__Group__0__Impl3999);
            rule__TypeRef__ReferencedAssignment_0();
            _fsp--;


            }

             after(grammarAccess.getTypeRefAccess().getReferencedAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__TypeRef__Group__0__Impl


    // $ANTLR start rule__TypeRef__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2012:1: rule__TypeRef__Group__1 : rule__TypeRef__Group__1__Impl ;
    public final void rule__TypeRef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2016:1: ( rule__TypeRef__Group__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2017:2: rule__TypeRef__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__TypeRef__Group__1__Impl_in_rule__TypeRef__Group__14029);
            rule__TypeRef__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__TypeRef__Group__1


    // $ANTLR start rule__TypeRef__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2023:1: rule__TypeRef__Group__1__Impl : ( ( rule__TypeRef__MultiAssignment_1 )? ) ;
    public final void rule__TypeRef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2027:1: ( ( ( rule__TypeRef__MultiAssignment_1 )? ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2028:1: ( ( rule__TypeRef__MultiAssignment_1 )? )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2028:1: ( ( rule__TypeRef__MultiAssignment_1 )? )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2029:1: ( rule__TypeRef__MultiAssignment_1 )?
            {
             before(grammarAccess.getTypeRefAccess().getMultiAssignment_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2030:1: ( rule__TypeRef__MultiAssignment_1 )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==29) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2030:2: rule__TypeRef__MultiAssignment_1
                    {
                    pushFollow(FOLLOW_rule__TypeRef__MultiAssignment_1_in_rule__TypeRef__Group__1__Impl4056);
                    rule__TypeRef__MultiAssignment_1();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getTypeRefAccess().getMultiAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__TypeRef__Group__1__Impl


    // $ANTLR start rule__QualifiedNameWithWildCard__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2044:1: rule__QualifiedNameWithWildCard__Group__0 : rule__QualifiedNameWithWildCard__Group__0__Impl rule__QualifiedNameWithWildCard__Group__1 ;
    public final void rule__QualifiedNameWithWildCard__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2048:1: ( rule__QualifiedNameWithWildCard__Group__0__Impl rule__QualifiedNameWithWildCard__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2049:2: rule__QualifiedNameWithWildCard__Group__0__Impl rule__QualifiedNameWithWildCard__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__0__Impl_in_rule__QualifiedNameWithWildCard__Group__04091);
            rule__QualifiedNameWithWildCard__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__1_in_rule__QualifiedNameWithWildCard__Group__04094);
            rule__QualifiedNameWithWildCard__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedNameWithWildCard__Group__0


    // $ANTLR start rule__QualifiedNameWithWildCard__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2056:1: rule__QualifiedNameWithWildCard__Group__0__Impl : ( ruleQualifiedName ) ;
    public final void rule__QualifiedNameWithWildCard__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2060:1: ( ( ruleQualifiedName ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2061:1: ( ruleQualifiedName )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2061:1: ( ruleQualifiedName )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2062:1: ruleQualifiedName
            {
             before(grammarAccess.getQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildCard__Group__0__Impl4121);
            ruleQualifiedName();
            _fsp--;

             after(grammarAccess.getQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedNameWithWildCard__Group__0__Impl


    // $ANTLR start rule__QualifiedNameWithWildCard__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2073:1: rule__QualifiedNameWithWildCard__Group__1 : rule__QualifiedNameWithWildCard__Group__1__Impl ;
    public final void rule__QualifiedNameWithWildCard__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2077:1: ( rule__QualifiedNameWithWildCard__Group__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2078:2: rule__QualifiedNameWithWildCard__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__1__Impl_in_rule__QualifiedNameWithWildCard__Group__14150);
            rule__QualifiedNameWithWildCard__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedNameWithWildCard__Group__1


    // $ANTLR start rule__QualifiedNameWithWildCard__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2084:1: rule__QualifiedNameWithWildCard__Group__1__Impl : ( ( '.*' )? ) ;
    public final void rule__QualifiedNameWithWildCard__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2088:1: ( ( ( '.*' )? ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2089:1: ( ( '.*' )? )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2089:1: ( ( '.*' )? )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2090:1: ( '.*' )?
            {
             before(grammarAccess.getQualifiedNameWithWildCardAccess().getFullStopAsteriskKeyword_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2091:1: ( '.*' )?
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==27) ) {
                alt15=1;
            }
            switch (alt15) {
                case 1 :
                    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2092:2: '.*'
                    {
                    match(input,27,FOLLOW_27_in_rule__QualifiedNameWithWildCard__Group__1__Impl4179); 

                    }
                    break;

            }

             after(grammarAccess.getQualifiedNameWithWildCardAccess().getFullStopAsteriskKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedNameWithWildCard__Group__1__Impl


    // $ANTLR start rule__QualifiedName__Group__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2107:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
    public final void rule__QualifiedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2111:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2112:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__04216);
            rule__QualifiedName__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__04219);
            rule__QualifiedName__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group__0


    // $ANTLR start rule__QualifiedName__Group__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2119:1: rule__QualifiedName__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2123:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2124:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2124:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2125:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl4246); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group__0__Impl


    // $ANTLR start rule__QualifiedName__Group__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2136:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
    public final void rule__QualifiedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2140:1: ( rule__QualifiedName__Group__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2141:2: rule__QualifiedName__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__14275);
            rule__QualifiedName__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group__1


    // $ANTLR start rule__QualifiedName__Group__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2147:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2151:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2152:1: ( ( rule__QualifiedName__Group_1__0 )* )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2152:1: ( ( rule__QualifiedName__Group_1__0 )* )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2153:1: ( rule__QualifiedName__Group_1__0 )*
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2154:1: ( rule__QualifiedName__Group_1__0 )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==28) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2154:2: rule__QualifiedName__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl4302);
            	    rule__QualifiedName__Group_1__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop16;
                }
            } while (true);

             after(grammarAccess.getQualifiedNameAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group__1__Impl


    // $ANTLR start rule__QualifiedName__Group_1__0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2168:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
    public final void rule__QualifiedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2172:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2173:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__04337);
            rule__QualifiedName__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__04340);
            rule__QualifiedName__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group_1__0


    // $ANTLR start rule__QualifiedName__Group_1__0__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2180:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2184:1: ( ( '.' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2185:1: ( '.' )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2185:1: ( '.' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2186:1: '.'
            {
             before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            match(input,28,FOLLOW_28_in_rule__QualifiedName__Group_1__0__Impl4368); 
             after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group_1__0__Impl


    // $ANTLR start rule__QualifiedName__Group_1__1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2199:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
    public final void rule__QualifiedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2203:1: ( rule__QualifiedName__Group_1__1__Impl )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2204:2: rule__QualifiedName__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__14399);
            rule__QualifiedName__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group_1__1


    // $ANTLR start rule__QualifiedName__Group_1__1__Impl
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2210:1: rule__QualifiedName__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2214:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2215:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2215:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2216:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl4426); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__QualifiedName__Group_1__1__Impl


    // $ANTLR start rule__DomainModel__ElementsAssignment
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2232:1: rule__DomainModel__ElementsAssignment : ( ruleAbstractElement ) ;
    public final void rule__DomainModel__ElementsAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2236:1: ( ( ruleAbstractElement ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2237:1: ( ruleAbstractElement )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2237:1: ( ruleAbstractElement )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2238:1: ruleAbstractElement
            {
             before(grammarAccess.getDomainModelAccess().getElementsAbstractElementParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleAbstractElement_in_rule__DomainModel__ElementsAssignment4464);
            ruleAbstractElement();
            _fsp--;

             after(grammarAccess.getDomainModelAccess().getElementsAbstractElementParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DomainModel__ElementsAssignment


    // $ANTLR start rule__Import__ImportedNamespaceAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2247:1: rule__Import__ImportedNamespaceAssignment_1 : ( ruleQualifiedNameWithWildCard ) ;
    public final void rule__Import__ImportedNamespaceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2251:1: ( ( ruleQualifiedNameWithWildCard ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2252:1: ( ruleQualifiedNameWithWildCard )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2252:1: ( ruleQualifiedNameWithWildCard )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2253:1: ruleQualifiedNameWithWildCard
            {
             before(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_rule__Import__ImportedNamespaceAssignment_14495);
            ruleQualifiedNameWithWildCard();
            _fsp--;

             after(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Import__ImportedNamespaceAssignment_1


    // $ANTLR start rule__PackageDeclaration__NameAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2262:1: rule__PackageDeclaration__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__PackageDeclaration__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2266:1: ( ( ruleQualifiedName ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2267:1: ( ruleQualifiedName )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2267:1: ( ruleQualifiedName )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2268:1: ruleQualifiedName
            {
             before(grammarAccess.getPackageDeclarationAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__PackageDeclaration__NameAssignment_14526);
            ruleQualifiedName();
            _fsp--;

             after(grammarAccess.getPackageDeclarationAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__NameAssignment_1


    // $ANTLR start rule__PackageDeclaration__ElementsAssignment_3
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2277:1: rule__PackageDeclaration__ElementsAssignment_3 : ( ruleAbstractElement ) ;
    public final void rule__PackageDeclaration__ElementsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2281:1: ( ( ruleAbstractElement ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2282:1: ( ruleAbstractElement )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2282:1: ( ruleAbstractElement )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2283:1: ruleAbstractElement
            {
             before(grammarAccess.getPackageDeclarationAccess().getElementsAbstractElementParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleAbstractElement_in_rule__PackageDeclaration__ElementsAssignment_34557);
            ruleAbstractElement();
            _fsp--;

             after(grammarAccess.getPackageDeclarationAccess().getElementsAbstractElementParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PackageDeclaration__ElementsAssignment_3


    // $ANTLR start rule__DataType__NameAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2292:1: rule__DataType__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__DataType__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2296:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2297:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2297:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2298:1: RULE_ID
            {
             before(grammarAccess.getDataTypeAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DataType__NameAssignment_14588); 
             after(grammarAccess.getDataTypeAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__DataType__NameAssignment_1


    // $ANTLR start rule__Entity__NameAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2307:1: rule__Entity__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Entity__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2311:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2312:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2312:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2313:1: RULE_ID
            {
             before(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_14619); 
             after(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__NameAssignment_1


    // $ANTLR start rule__Entity__SuperTypeAssignment_2_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2322:1: rule__Entity__SuperTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Entity__SuperTypeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2326:1: ( ( ( ruleQualifiedName ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2327:1: ( ( ruleQualifiedName ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2327:1: ( ( ruleQualifiedName ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2328:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getEntityAccess().getSuperTypeEntityCrossReference_2_1_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2329:1: ( ruleQualifiedName )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2330:1: ruleQualifiedName
            {
             before(grammarAccess.getEntityAccess().getSuperTypeEntityQualifiedNameParserRuleCall_2_1_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Entity__SuperTypeAssignment_2_14654);
            ruleQualifiedName();
            _fsp--;

             after(grammarAccess.getEntityAccess().getSuperTypeEntityQualifiedNameParserRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getEntityAccess().getSuperTypeEntityCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__SuperTypeAssignment_2_1


    // $ANTLR start rule__Entity__FeaturesAssignment_4
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2341:1: rule__Entity__FeaturesAssignment_4 : ( ruleFeature ) ;
    public final void rule__Entity__FeaturesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2345:1: ( ( ruleFeature ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2346:1: ( ruleFeature )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2346:1: ( ruleFeature )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2347:1: ruleFeature
            {
             before(grammarAccess.getEntityAccess().getFeaturesFeatureParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleFeature_in_rule__Entity__FeaturesAssignment_44689);
            ruleFeature();
            _fsp--;

             after(grammarAccess.getEntityAccess().getFeaturesFeatureParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Entity__FeaturesAssignment_4


    // $ANTLR start rule__Attribute__TypeAssignment_0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2356:1: rule__Attribute__TypeAssignment_0 : ( ruleTypeRef ) ;
    public final void rule__Attribute__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2360:1: ( ( ruleTypeRef ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2361:1: ( ruleTypeRef )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2361:1: ( ruleTypeRef )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2362:1: ruleTypeRef
            {
             before(grammarAccess.getAttributeAccess().getTypeTypeRefParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Attribute__TypeAssignment_04720);
            ruleTypeRef();
            _fsp--;

             after(grammarAccess.getAttributeAccess().getTypeTypeRefParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__TypeAssignment_0


    // $ANTLR start rule__Attribute__NameAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2371:1: rule__Attribute__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Attribute__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2375:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2376:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2376:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2377:1: RULE_ID
            {
             before(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_14751); 
             after(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attribute__NameAssignment_1


    // $ANTLR start rule__Reference__TypeAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2386:1: rule__Reference__TypeAssignment_1 : ( ruleTypeRef ) ;
    public final void rule__Reference__TypeAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2390:1: ( ( ruleTypeRef ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2391:1: ( ruleTypeRef )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2391:1: ( ruleTypeRef )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2392:1: ruleTypeRef
            {
             before(grammarAccess.getReferenceAccess().getTypeTypeRefParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Reference__TypeAssignment_14782);
            ruleTypeRef();
            _fsp--;

             after(grammarAccess.getReferenceAccess().getTypeTypeRefParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__TypeAssignment_1


    // $ANTLR start rule__Reference__OppositeAssignment_2_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2401:1: rule__Reference__OppositeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Reference__OppositeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2405:1: ( ( ( RULE_ID ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2406:1: ( ( RULE_ID ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2406:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2407:1: ( RULE_ID )
            {
             before(grammarAccess.getReferenceAccess().getOppositeReferenceCrossReference_2_1_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2408:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2409:1: RULE_ID
            {
             before(grammarAccess.getReferenceAccess().getOppositeReferenceIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Reference__OppositeAssignment_2_14817); 
             after(grammarAccess.getReferenceAccess().getOppositeReferenceIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getReferenceAccess().getOppositeReferenceCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__OppositeAssignment_2_1


    // $ANTLR start rule__Reference__NameAssignment_3
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2420:1: rule__Reference__NameAssignment_3 : ( RULE_ID ) ;
    public final void rule__Reference__NameAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2424:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2425:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2425:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2426:1: RULE_ID
            {
             before(grammarAccess.getReferenceAccess().getNameIDTerminalRuleCall_3_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Reference__NameAssignment_34852); 
             after(grammarAccess.getReferenceAccess().getNameIDTerminalRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Reference__NameAssignment_3


    // $ANTLR start rule__Operation__VisibilityAssignment_0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2435:1: rule__Operation__VisibilityAssignment_0 : ( ruleVisibility ) ;
    public final void rule__Operation__VisibilityAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2439:1: ( ( ruleVisibility ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2440:1: ( ruleVisibility )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2440:1: ( ruleVisibility )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2441:1: ruleVisibility
            {
             before(grammarAccess.getOperationAccess().getVisibilityVisibilityEnumRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleVisibility_in_rule__Operation__VisibilityAssignment_04883);
            ruleVisibility();
            _fsp--;

             after(grammarAccess.getOperationAccess().getVisibilityVisibilityEnumRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__VisibilityAssignment_0


    // $ANTLR start rule__Operation__TypeAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2450:1: rule__Operation__TypeAssignment_1 : ( ruleTypeRef ) ;
    public final void rule__Operation__TypeAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2454:1: ( ( ruleTypeRef ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2455:1: ( ruleTypeRef )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2455:1: ( ruleTypeRef )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2456:1: ruleTypeRef
            {
             before(grammarAccess.getOperationAccess().getTypeTypeRefParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Operation__TypeAssignment_14914);
            ruleTypeRef();
            _fsp--;

             after(grammarAccess.getOperationAccess().getTypeTypeRefParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__TypeAssignment_1


    // $ANTLR start rule__Operation__NameAssignment_2
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2465:1: rule__Operation__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__Operation__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2469:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2470:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2470:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2471:1: RULE_ID
            {
             before(grammarAccess.getOperationAccess().getNameIDTerminalRuleCall_2_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Operation__NameAssignment_24945); 
             after(grammarAccess.getOperationAccess().getNameIDTerminalRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__NameAssignment_2


    // $ANTLR start rule__Operation__ParamsAssignment_4_0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2480:1: rule__Operation__ParamsAssignment_4_0 : ( ruleParameter ) ;
    public final void rule__Operation__ParamsAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2484:1: ( ( ruleParameter ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2485:1: ( ruleParameter )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2485:1: ( ruleParameter )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2486:1: ruleParameter
            {
             before(grammarAccess.getOperationAccess().getParamsParameterParserRuleCall_4_0_0()); 
            pushFollow(FOLLOW_ruleParameter_in_rule__Operation__ParamsAssignment_4_04976);
            ruleParameter();
            _fsp--;

             after(grammarAccess.getOperationAccess().getParamsParameterParserRuleCall_4_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__ParamsAssignment_4_0


    // $ANTLR start rule__Operation__ParamsAssignment_4_1_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2495:1: rule__Operation__ParamsAssignment_4_1_1 : ( ruleParameter ) ;
    public final void rule__Operation__ParamsAssignment_4_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2499:1: ( ( ruleParameter ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2500:1: ( ruleParameter )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2500:1: ( ruleParameter )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2501:1: ruleParameter
            {
             before(grammarAccess.getOperationAccess().getParamsParameterParserRuleCall_4_1_1_0()); 
            pushFollow(FOLLOW_ruleParameter_in_rule__Operation__ParamsAssignment_4_1_15007);
            ruleParameter();
            _fsp--;

             after(grammarAccess.getOperationAccess().getParamsParameterParserRuleCall_4_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Operation__ParamsAssignment_4_1_1


    // $ANTLR start rule__Parameter__NameAssignment_0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2510:1: rule__Parameter__NameAssignment_0 : ( RULE_ID ) ;
    public final void rule__Parameter__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2514:1: ( ( RULE_ID ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2515:1: ( RULE_ID )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2515:1: ( RULE_ID )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2516:1: RULE_ID
            {
             before(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Parameter__NameAssignment_05038); 
             after(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Parameter__NameAssignment_0


    // $ANTLR start rule__Parameter__TypeAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2525:1: rule__Parameter__TypeAssignment_1 : ( ruleTypeRef ) ;
    public final void rule__Parameter__TypeAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2529:1: ( ( ruleTypeRef ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2530:1: ( ruleTypeRef )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2530:1: ( ruleTypeRef )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2531:1: ruleTypeRef
            {
             before(grammarAccess.getParameterAccess().getTypeTypeRefParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleTypeRef_in_rule__Parameter__TypeAssignment_15069);
            ruleTypeRef();
            _fsp--;

             after(grammarAccess.getParameterAccess().getTypeTypeRefParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Parameter__TypeAssignment_1


    // $ANTLR start rule__TypeRef__ReferencedAssignment_0
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2540:1: rule__TypeRef__ReferencedAssignment_0 : ( ( ruleQualifiedName ) ) ;
    public final void rule__TypeRef__ReferencedAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2544:1: ( ( ( ruleQualifiedName ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2545:1: ( ( ruleQualifiedName ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2545:1: ( ( ruleQualifiedName ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2546:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getTypeRefAccess().getReferencedTypeCrossReference_0_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2547:1: ( ruleQualifiedName )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2548:1: ruleQualifiedName
            {
             before(grammarAccess.getTypeRefAccess().getReferencedTypeQualifiedNameParserRuleCall_0_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__TypeRef__ReferencedAssignment_05104);
            ruleQualifiedName();
            _fsp--;

             after(grammarAccess.getTypeRefAccess().getReferencedTypeQualifiedNameParserRuleCall_0_0_1()); 

            }

             after(grammarAccess.getTypeRefAccess().getReferencedTypeCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__TypeRef__ReferencedAssignment_0


    // $ANTLR start rule__TypeRef__MultiAssignment_1
    // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2559:1: rule__TypeRef__MultiAssignment_1 : ( ( '*' ) ) ;
    public final void rule__TypeRef__MultiAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2563:1: ( ( ( '*' ) ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2564:1: ( ( '*' ) )
            {
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2564:1: ( ( '*' ) )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2565:1: ( '*' )
            {
             before(grammarAccess.getTypeRefAccess().getMultiAsteriskKeyword_1_0()); 
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2566:1: ( '*' )
            // ../net.danieldietrich.gwt.dsl.ui/src-gen/net/danieldietrich/gwt/dsl/ui/contentassist/antlr/internal/InternalDomainModel.g:2567:1: '*'
            {
             before(grammarAccess.getTypeRefAccess().getMultiAsteriskKeyword_1_0()); 
            match(input,29,FOLLOW_29_in_rule__TypeRef__MultiAssignment_15144); 
             after(grammarAccess.getTypeRefAccess().getMultiAsteriskKeyword_1_0()); 

            }

             after(grammarAccess.getTypeRefAccess().getMultiAsteriskKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__TypeRef__MultiAssignment_1


    protected DFA4 dfa4 = new DFA4(this);
    static final String DFA4_eotS =
        "\10\uffff";
    static final String DFA4_eofS =
        "\10\uffff";
    static final String DFA4_minS =
        "\2\4\2\uffff\2\4\1\17\1\4";
    static final String DFA4_maxS =
        "\1\26\1\35\2\uffff\2\4\1\30\1\35";
    static final String DFA4_acceptS =
        "\2\uffff\1\1\1\2\4\uffff";
    static final String DFA4_specialS =
        "\10\uffff}>";
    static final String[] DFA4_transitionS = {
            "\1\1\6\uffff\3\3\10\uffff\1\2",
            "\1\6\27\uffff\1\4\1\5",
            "",
            "",
            "\1\7",
            "\1\6",
            "\1\2\10\uffff\1\3",
            "\1\6\27\uffff\1\4\1\5"
    };

    static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS);
    static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS);
    static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS);
    static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS);
    static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS);
    static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS);
    static final short[][] DFA4_transition;

    static {
        int numStates = DFA4_transitionS.length;
        DFA4_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA4_transition[i] = DFA.unpackEncodedString(DFA4_transitionS[i]);
        }
    }

    class DFA4 extends DFA {

        public DFA4(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 4;
            this.eot = DFA4_eot;
            this.eof = DFA4_eof;
            this.min = DFA4_min;
            this.max = DFA4_max;
            this.accept = DFA4_accept;
            this.special = DFA4_special;
            this.transition = DFA4_transition;
        }
        public String getDescription() {
            return "578:1: rule__Feature__Alternatives : ( ( ruleStructuralFeature ) | ( ruleOperation ) );";
        }
    }
 

    public static final BitSet FOLLOW_ruleDomainModel_in_entryRuleDomainModel61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDomainModel68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DomainModel__ElementsAssignment_in_ruleDomainModel94 = new BitSet(new long[]{0x0000000000194002L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement122 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractElement129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractElement__Alternatives_in_ruleAbstractElement155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport182 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImport189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__0_in_ruleImport215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackageDeclaration_in_entryRulePackageDeclaration242 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePackageDeclaration249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__0_in_rulePackageDeclaration275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_entryRuleType302 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleType309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Alternatives_in_ruleType335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataType_in_entryRuleDataType362 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDataType369 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__Group__0_in_ruleDataType395 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_entryRuleEntity422 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEntity429 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0_in_ruleEntity455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFeature_in_entryRuleFeature482 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFeature489 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Feature__Alternatives_in_ruleFeature515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStructuralFeature_in_entryRuleStructuralFeature542 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleStructuralFeature549 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StructuralFeature__Alternatives_in_ruleStructuralFeature575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_entryRuleAttribute602 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAttribute609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0_in_ruleAttribute635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReference_in_entryRuleReference662 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleReference669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group__0_in_ruleReference695 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperation_in_entryRuleOperation722 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOperation729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__0_in_ruleOperation755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParameter_in_entryRuleParameter782 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleParameter789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__Group__0_in_ruleParameter815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_entryRuleTypeRef842 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTypeRef849 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group__0_in_ruleTypeRef875 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard902 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__0_in_ruleQualifiedNameWithWildCard935 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName962 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName995 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Visibility__Alternatives_in_ruleVisibility1032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackageDeclaration_in_rule__AbstractElement__Alternatives1067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_rule__AbstractElement__Alternatives1084 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_rule__AbstractElement__Alternatives1101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_rule__Type__Alternatives1133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataType_in_rule__Type__Alternatives1150 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStructuralFeature_in_rule__Feature__Alternatives1182 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOperation_in_rule__Feature__Alternatives1199 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_rule__StructuralFeature__Alternatives1231 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReference_in_rule__StructuralFeature__Alternatives1248 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__Visibility__Alternatives1281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__Visibility__Alternatives1302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__Visibility__Alternatives1323 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__01356 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__01359 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__Import__Group__0__Impl1387 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__11418 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_rule__Import__Group__2_in_rule__Import__Group__11421 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__ImportedNamespaceAssignment_1_in_rule__Import__Group__1__Impl1448 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__21478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__Import__Group__2__Impl1506 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__0__Impl_in_rule__PackageDeclaration__Group__01543 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__1_in_rule__PackageDeclaration__Group__01546 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__PackageDeclaration__Group__0__Impl1574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__1__Impl_in_rule__PackageDeclaration__Group__11605 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__2_in_rule__PackageDeclaration__Group__11608 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__NameAssignment_1_in_rule__PackageDeclaration__Group__1__Impl1635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__2__Impl_in_rule__PackageDeclaration__Group__21665 = new BitSet(new long[]{0x00000000001D4000L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__3_in_rule__PackageDeclaration__Group__21668 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__PackageDeclaration__Group__2__Impl1696 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__3__Impl_in_rule__PackageDeclaration__Group__31727 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__4_in_rule__PackageDeclaration__Group__31730 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__ElementsAssignment_3_in_rule__PackageDeclaration__Group__3__Impl1757 = new BitSet(new long[]{0x0000000000194002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__4__Impl_in_rule__PackageDeclaration__Group__41788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__PackageDeclaration__Group__4__Impl1816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__Group__0__Impl_in_rule__DataType__Group__01857 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__DataType__Group__1_in_rule__DataType__Group__01860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__DataType__Group__0__Impl1888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__Group__1__Impl_in_rule__DataType__Group__11919 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_rule__DataType__Group__2_in_rule__DataType__Group__11922 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__NameAssignment_1_in_rule__DataType__Group__1__Impl1949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__Group__2__Impl_in_rule__DataType__Group__21979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__DataType__Group__2__Impl2007 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__02044 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__02047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Entity__Group__0__Impl2075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__12106 = new BitSet(new long[]{0x0000000000220000L});
    public static final BitSet FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__12109 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl2136 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__22166 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__22169 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl2196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__32227 = new BitSet(new long[]{0x0000000000443810L});
    public static final BitSet FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__32230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__Entity__Group__3__Impl2258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__42289 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__42292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__FeaturesAssignment_4_in_rule__Entity__Group__4__Impl2319 = new BitSet(new long[]{0x0000000000403812L});
    public static final BitSet FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__52350 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__Entity__Group__5__Impl2378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__02421 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__02424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Entity__Group_2__0__Impl2452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__12483 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__SuperTypeAssignment_2_1_in_rule__Entity__Group_2__1__Impl2510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__02544 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__02547 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__TypeAssignment_0_in_rule__Attribute__Group__0__Impl2574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__12604 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__12607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__NameAssignment_1_in_rule__Attribute__Group__1__Impl2634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__22664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__Attribute__Group__2__Impl2692 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group__0__Impl_in_rule__Reference__Group__02729 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Reference__Group__1_in_rule__Reference__Group__02732 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Reference__Group__0__Impl2760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group__1__Impl_in_rule__Reference__Group__12791 = new BitSet(new long[]{0x0000000000800010L});
    public static final BitSet FOLLOW_rule__Reference__Group__2_in_rule__Reference__Group__12794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__TypeAssignment_1_in_rule__Reference__Group__1__Impl2821 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group__2__Impl_in_rule__Reference__Group__22851 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Reference__Group__3_in_rule__Reference__Group__22854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group_2__0_in_rule__Reference__Group__2__Impl2881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group__3__Impl_in_rule__Reference__Group__32912 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_rule__Reference__Group__4_in_rule__Reference__Group__32915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__NameAssignment_3_in_rule__Reference__Group__3__Impl2942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group__4__Impl_in_rule__Reference__Group__42972 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__Reference__Group__4__Impl3000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group_2__0__Impl_in_rule__Reference__Group_2__03041 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Reference__Group_2__1_in_rule__Reference__Group_2__03044 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Reference__Group_2__0__Impl3072 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__Group_2__1__Impl_in_rule__Reference__Group_2__13103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__OppositeAssignment_2_1_in_rule__Reference__Group_2__1__Impl3130 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__0__Impl_in_rule__Operation__Group__03164 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Operation__Group__1_in_rule__Operation__Group__03167 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__VisibilityAssignment_0_in_rule__Operation__Group__0__Impl3194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__1__Impl_in_rule__Operation__Group__13225 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Operation__Group__2_in_rule__Operation__Group__13228 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__TypeAssignment_1_in_rule__Operation__Group__1__Impl3255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__2__Impl_in_rule__Operation__Group__23285 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Operation__Group__3_in_rule__Operation__Group__23288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__NameAssignment_2_in_rule__Operation__Group__2__Impl3315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__3__Impl_in_rule__Operation__Group__33345 = new BitSet(new long[]{0x0000000002000010L});
    public static final BitSet FOLLOW_rule__Operation__Group__4_in_rule__Operation__Group__33348 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Operation__Group__3__Impl3376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__4__Impl_in_rule__Operation__Group__43407 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Operation__Group__5_in_rule__Operation__Group__43410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_4__0_in_rule__Operation__Group__4__Impl3437 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__5__Impl_in_rule__Operation__Group__53468 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_rule__Operation__Group__6_in_rule__Operation__Group__53471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Operation__Group__5__Impl3499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group__6__Impl_in_rule__Operation__Group__63530 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__Operation__Group__6__Impl3558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_4__0__Impl_in_rule__Operation__Group_4__03603 = new BitSet(new long[]{0x0000000004000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_4__1_in_rule__Operation__Group_4__03606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__ParamsAssignment_4_0_in_rule__Operation__Group_4__0__Impl3633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_4__1__Impl_in_rule__Operation__Group_4__13663 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_4_1__0_in_rule__Operation__Group_4__1__Impl3690 = new BitSet(new long[]{0x0000000004000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_4_1__0__Impl_in_rule__Operation__Group_4_1__03725 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Operation__Group_4_1__1_in_rule__Operation__Group_4_1__03728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Operation__Group_4_1__0__Impl3756 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__Group_4_1__1__Impl_in_rule__Operation__Group_4_1__13787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Operation__ParamsAssignment_4_1_1_in_rule__Operation__Group_4_1__1__Impl3814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__03848 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__03851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__NameAssignment_0_in_rule__Parameter__Group__0__Impl3878 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__13908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__TypeAssignment_1_in_rule__Parameter__Group__1__Impl3935 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group__0__Impl_in_rule__TypeRef__Group__03969 = new BitSet(new long[]{0x0000000020000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group__1_in_rule__TypeRef__Group__03972 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__ReferencedAssignment_0_in_rule__TypeRef__Group__0__Impl3999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__Group__1__Impl_in_rule__TypeRef__Group__14029 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeRef__MultiAssignment_1_in_rule__TypeRef__Group__1__Impl4056 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__0__Impl_in_rule__QualifiedNameWithWildCard__Group__04091 = new BitSet(new long[]{0x0000000008000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__1_in_rule__QualifiedNameWithWildCard__Group__04094 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildCard__Group__0__Impl4121 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__1__Impl_in_rule__QualifiedNameWithWildCard__Group__14150 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__QualifiedNameWithWildCard__Group__1__Impl4179 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__04216 = new BitSet(new long[]{0x0000000010000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__04219 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl4246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__14275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl4302 = new BitSet(new long[]{0x0000000010000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__04337 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__04340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__QualifiedName__Group_1__0__Impl4368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__14399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl4426 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_rule__DomainModel__ElementsAssignment4464 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_rule__Import__ImportedNamespaceAssignment_14495 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__PackageDeclaration__NameAssignment_14526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_rule__PackageDeclaration__ElementsAssignment_34557 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DataType__NameAssignment_14588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_14619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Entity__SuperTypeAssignment_2_14654 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFeature_in_rule__Entity__FeaturesAssignment_44689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Attribute__TypeAssignment_04720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_14751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Reference__TypeAssignment_14782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Reference__OppositeAssignment_2_14817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Reference__NameAssignment_34852 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleVisibility_in_rule__Operation__VisibilityAssignment_04883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Operation__TypeAssignment_14914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Operation__NameAssignment_24945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParameter_in_rule__Operation__ParamsAssignment_4_04976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParameter_in_rule__Operation__ParamsAssignment_4_1_15007 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Parameter__NameAssignment_05038 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeRef_in_rule__Parameter__TypeAssignment_15069 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__TypeRef__ReferencedAssignment_05104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__TypeRef__MultiAssignment_15144 = new BitSet(new long[]{0x0000000000000002L});

}